当前位置: 首页 > news >正文

汇川CodeSysPLC教程03-2-14 与HMI通信

硬件连接

PLC与HMI连接采用何种连接方式,通常是参考双方支持哪些接口。PLC(可编程逻辑控制器)与HMI(人机界面)之间的通讯方式主要有以下几种:

  1. 串行通讯(Serial Communication)

    • 使用RS-232、RS-422或RS-485等串行通讯标准进行数据传输。
    • 通常用于短距离通讯,简单且成本低。
  2. 以太网通讯(Ethernet Communication)

    • 基于TCP/IP协议进行数据传输。
    • 支持长距离通讯,速度快且稳定。
    • 常用的协议有Modbus TCP、EtherNet/IP等。
  3. 现场总线通讯(Fieldbus Communication)

    • 专为工业控制系统设计的通讯协议,如Profibus、CANopen、DeviceNet等。
    • 适用于复杂的工业环境,具有高可靠性和实时性。
  4. 无线通讯(Wireless Communication)

    • 使用Wi-Fi、蓝牙、ZigBee等无线技术。
    • 适用于需要灵活布线或移动设备的场景。
  5. 光纤通讯(Fiber Optic Communication)

    • 使用光纤电缆进行数据传输,适用于长距离和高干扰环境。
    • 提供高带宽和高安全性。

这些通讯方式各有优缺点,具体选择取决于应用场景、通讯距离、数据传输速率以及成本等因素。
例如HMI支持串口、网口,PLC也支持串口、网口,那么PLC与HMI就都可以采用串口或者都采用网口来通信,有的低端的HMI只支持RS232串口,那么就务必注意PLC是否带此接口,选型上务必要注意PLC与HMI的通信接口的匹配和一致。当然现在一般的PLC和HMI都是支持网口的,所以这里我们默认硬件连接采用RJ-45网线直连HMI与PLC(直通网线或使用HUB交换)。

主要的通讯方法

ModBus TCP通信

配置

每一家的PLC都有自己独有的总线协议与HMI进行通讯,例如西门子使用的是Profinet,三菱采用的是MC协议,倍福采用的ADS通讯一样。汇川的PLC基于的通用的Modbus协议,一般的更为具体的是ModBus TCP协议。这里我们虽然没有具体阐述ModBus TCP协议,但是联想到ModBus RTU与ModBus ASCII协议,我们也能大概理解。HMI作为主站,PLC作为从站。这个地方尤其要注意,很多新手都会误以为PLC是作为主站存在的,我们需要思考一下,PLC大部分情况下都是作为主站,那是因为PLC拥有主动访问的行为,从HMI来看,人的行为透过HMI来主动访问PLC,那么PLC就不能再视为主站了。好的,如何将PLC设为从站呢?前面我们已经提到过,主从站设定。只需要勾选Modbus TCP从站即可。
在这里插入图片描述
在这里插入图片描述

这个地方需要留意的就是两点:

  1. 502端口,基本上做ModBus TCP从站的设备默认端口都是这个。那为什么就是502呢?(为了好记,你这么记,端口是用502胶水粘住的)

Modbus TCP从站的端口一般是502,原因如下:

  1. 标准化

    • Modbus TCP协议标准规定了502端口作为默认的通信端口。标准化的端口号简化了设备和系统之间的互操作性,确保不同制造商的设备能够顺利通信。
  2. 历史原因

    • Modbus协议最早是为串行通讯(Modbus RTU)设计的,后来被扩展为Modbus TCP。为了保持一致性,Modbus TCP在TCP/IP网络中指定了502端口,方便用户在不同通信方式之间切换。
  3. 协议定义

    • 根据Modbus TCP规范,502端口是为Modbus通信预留的标准端口号。这是由Modbus协议维护组织(Modbus-IDA)定义的,以确保协议的一致性和互操作性。
  4. 设备兼容性

    • 大多数Modbus TCP从站设备和主站软件默认配置为使用502端口,简化了系统配置和集成。使用标准端口号减少了用户配置错误的风险,提高了系统的可靠性。
  5. 防火墙和网络配置

    • 网络管理员和安全设备(如防火墙)通常会预先配置502端口用于Modbus通信。如果使用非标准端口,可能需要额外的配置和调整,增加了部署的复杂性。

综上所述,502端口作为Modbus TCP从站的默认端口是由于协议标准化、历史原因和设备兼容性等多方面的考虑,使得系统配置更加简便和可靠。

  1. 帧间隔,一般来说不需要关注,但是如果你发现PLC的CPU负载比较大的时候,增大帧间隔能比较有效的降低HMI访问PLC带来的通讯负载。
映射

设置完这些,HMI怎么访问PLC呢?当然是通过Modbus地址,在汇川当中,M区的地址与Modbus地址是一一映射的。
Modbus变量编址

标签通信

标签通讯(Tag Communication)是一种现代工业自动化中常用的通讯方式,尤其在PLC(可编程逻辑控制器)与HMI(人机界面)之间的通讯中。标签通讯通过使用人类可读的标签(Tag)名称来标识和传输数据,而不是通过具体的内存地址。以下是对标签通讯的详细解释:

标签通讯的特点

  1. 人类可读性

    • 使用描述性的名称(标签)来标识变量,例如"TankLevel"或"MotorSpeed"。
    • 这种命名方式更直观,易于理解和维护。
  2. 抽象化

    • 把底层硬件地址抽象为高层次的标签名称,用户无需关注具体的内存地址。
    • 提高了系统的灵活性和可移植性。
  3. 简化配置

    • 在HMI和PLC的配置中,可以直接引用标签名称,而不需要具体地址映射。
    • 减少了配置错误,提高了开发效率。

标签通讯的实现方式

  1. 标签数据库

    • PLC和HMI系统中通常包含一个标签数据库,存储所有标签及其对应的地址和数据类型。
    • 标签数据库在系统间共享,确保标签名称的一致性。
  2. 通讯协议

    • 标签通讯可以基于多种通讯协议实现,如Modbus、OPC UA、EtherNet/IP等。
    • 这些协议支持通过标签名称进行数据访问和传输。

标签通讯的优点

  1. 易于理解和维护

    • 使用描述性标签名称使程序和配置更具可读性,方便调试和维护。
  2. 减少错误

    • 由于不需要直接使用内存地址,减少了配置错误和地址冲突的可能性。
  3. 增强灵活性

    • 更换硬件或重新配置时,只需更新标签数据库,无需修改大量代码或配置。
  4. 提高开发效率

    • 标签通讯简化了开发过程,使开发人员能够更专注于应用逻辑,而不是底层通讯细节。

应用场景

  1. PLC与HMI之间的通讯

    • HMI通过标签访问PLC中的数据,实现人机交互和监控。
  2. 分布式控制系统

    • 在大型分布式控制系统中,通过标签实现不同控制单元之间的数据共享和协调。
  3. 数据采集与监控(SCADA)系统

    • SCADA系统通过标签通讯从多个现场设备收集数据,实现集中监控和管理。

标签通讯的出现大大提高了工业自动化系统的开发和维护效率,使系统更易于理解和管理。

关于如何进行标签通讯,需要先学习符号配置。这一块我们暂且先不提,等到符号配置时,我们再提。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java泛型的定义与运用
  • Linux | 安装lb-toolkits 1.2.4库
  • 信创:鲲鹏(arm64)+麒麟(kylin v10)离线部署k8s和kubesphere(含离线部署新方式)
  • STM32 SPI世界:W25Q64 Flash存储器的硬件与软件集成策略
  • Riscv 架构的合规测试
  • 【简历】湖南某一本大学:JAVA实习简历指导,面试通过率比较低
  • CBCOI招人啦!!!!!!!!
  • jenkins学习
  • 【安全设备】堡垒机
  • pcie 基础
  • Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
  • 安全及应用(更新)
  • 深入理解MySQL中的EXPLAIN及type列
  • 华为HCIP Datacom H12-821 卷34
  • 近期勒索软件趋势统计及未来发展预测
  • 深入了解以太坊
  • 【mysql】环境安装、服务启动、密码设置
  • 【刷算法】求1+2+3+...+n
  • 11111111
  • Github访问慢解决办法
  • k个最大的数及变种小结
  • Phpstorm怎样批量删除空行?
  • Redash本地开发环境搭建
  • vue学习系列(二)vue-cli
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 观察者模式实现非直接耦合
  • 如何设计一个微型分布式架构?
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 通过git安装npm私有模块
  • 微信支付JSAPI,实测!终极方案
  • 学习Vue.js的五个小例子
  • 译米田引理
  • Python 之网络式编程
  • # 透过事物看本质的能力怎么培养?
  • #define、const、typedef的差别
  • $(selector).each()和$.each()的区别
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (3)STL算法之搜索
  • (31)对象的克隆
  • (C#)一个最简单的链表类
  • (k8s)Kubernetes本地存储接入
  • (rabbitmq的高级特性)消息可靠性
  • (苍穹外卖)day03菜品管理
  • (二十四)Flask之flask-session组件
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (十三)MipMap
  • (四)软件性能测试
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (一)Docker基本介绍
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .Net core 6.0 升8.0