汇川CodeSysPLC教程03-2-14 与HMI通信
硬件连接
PLC与HMI连接采用何种连接方式,通常是参考双方支持哪些接口。PLC(可编程逻辑控制器)与HMI(人机界面)之间的通讯方式主要有以下几种:
-
串行通讯(Serial Communication):
- 使用RS-232、RS-422或RS-485等串行通讯标准进行数据传输。
- 通常用于短距离通讯,简单且成本低。
-
以太网通讯(Ethernet Communication):
- 基于TCP/IP协议进行数据传输。
- 支持长距离通讯,速度快且稳定。
- 常用的协议有Modbus TCP、EtherNet/IP等。
-
现场总线通讯(Fieldbus Communication):
- 专为工业控制系统设计的通讯协议,如Profibus、CANopen、DeviceNet等。
- 适用于复杂的工业环境,具有高可靠性和实时性。
-
无线通讯(Wireless Communication):
- 使用Wi-Fi、蓝牙、ZigBee等无线技术。
- 适用于需要灵活布线或移动设备的场景。
-
光纤通讯(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从站即可。
这个地方需要留意的就是两点:
- 502端口,基本上做ModBus TCP从站的设备默认端口都是这个。那为什么就是502呢?(为了好记,你这么记,端口是用502胶水粘住的)
Modbus TCP从站的端口一般是502,原因如下:
标准化:
- Modbus TCP协议标准规定了502端口作为默认的通信端口。标准化的端口号简化了设备和系统之间的互操作性,确保不同制造商的设备能够顺利通信。
历史原因:
- Modbus协议最早是为串行通讯(Modbus RTU)设计的,后来被扩展为Modbus TCP。为了保持一致性,Modbus TCP在TCP/IP网络中指定了502端口,方便用户在不同通信方式之间切换。
协议定义:
- 根据Modbus TCP规范,502端口是为Modbus通信预留的标准端口号。这是由Modbus协议维护组织(Modbus-IDA)定义的,以确保协议的一致性和互操作性。
设备兼容性:
- 大多数Modbus TCP从站设备和主站软件默认配置为使用502端口,简化了系统配置和集成。使用标准端口号减少了用户配置错误的风险,提高了系统的可靠性。
防火墙和网络配置:
- 网络管理员和安全设备(如防火墙)通常会预先配置502端口用于Modbus通信。如果使用非标准端口,可能需要额外的配置和调整,增加了部署的复杂性。
综上所述,502端口作为Modbus TCP从站的默认端口是由于协议标准化、历史原因和设备兼容性等多方面的考虑,使得系统配置更加简便和可靠。
- 帧间隔,一般来说不需要关注,但是如果你发现PLC的CPU负载比较大的时候,增大帧间隔能比较有效的降低HMI访问PLC带来的通讯负载。
映射
设置完这些,HMI怎么访问PLC呢?当然是通过Modbus地址,在汇川当中,M区的地址与Modbus地址是一一映射的。
Modbus变量编址
标签通信
标签通讯(Tag Communication)是一种现代工业自动化中常用的通讯方式,尤其在PLC(可编程逻辑控制器)与HMI(人机界面)之间的通讯中。标签通讯通过使用人类可读的标签(Tag)名称来标识和传输数据,而不是通过具体的内存地址。以下是对标签通讯的详细解释:
标签通讯的特点
-
人类可读性:
- 使用描述性的名称(标签)来标识变量,例如"TankLevel"或"MotorSpeed"。
- 这种命名方式更直观,易于理解和维护。
-
抽象化:
- 把底层硬件地址抽象为高层次的标签名称,用户无需关注具体的内存地址。
- 提高了系统的灵活性和可移植性。
-
简化配置:
- 在HMI和PLC的配置中,可以直接引用标签名称,而不需要具体地址映射。
- 减少了配置错误,提高了开发效率。
标签通讯的实现方式
-
标签数据库:
- PLC和HMI系统中通常包含一个标签数据库,存储所有标签及其对应的地址和数据类型。
- 标签数据库在系统间共享,确保标签名称的一致性。
-
通讯协议:
- 标签通讯可以基于多种通讯协议实现,如Modbus、OPC UA、EtherNet/IP等。
- 这些协议支持通过标签名称进行数据访问和传输。
标签通讯的优点
-
易于理解和维护:
- 使用描述性标签名称使程序和配置更具可读性,方便调试和维护。
-
减少错误:
- 由于不需要直接使用内存地址,减少了配置错误和地址冲突的可能性。
-
增强灵活性:
- 更换硬件或重新配置时,只需更新标签数据库,无需修改大量代码或配置。
-
提高开发效率:
- 标签通讯简化了开发过程,使开发人员能够更专注于应用逻辑,而不是底层通讯细节。
应用场景
-
PLC与HMI之间的通讯:
- HMI通过标签访问PLC中的数据,实现人机交互和监控。
-
分布式控制系统:
- 在大型分布式控制系统中,通过标签实现不同控制单元之间的数据共享和协调。
-
数据采集与监控(SCADA)系统:
- SCADA系统通过标签通讯从多个现场设备收集数据,实现集中监控和管理。
标签通讯的出现大大提高了工业自动化系统的开发和维护效率,使系统更易于理解和管理。
关于如何进行标签通讯,需要先学习符号配置。这一块我们暂且先不提,等到符号配置时,我们再提。
相关文章:

汇川CodeSysPLC教程03-2-14 与HMI通信
硬件连接 PLC与HMI连接采用何种连接方式,通常是参考双方支持哪些接口。PLC(可编程逻辑控制器)与HMI(人机界面)之间的通讯方式主要有以下几种: 串行通讯(Serial Communication)&…...

centos部署jar包
第一步: 将IDEA中的项目打包为jar,将这个jar文件放到centos服务器上的目录里,我在opt新建api目录,将jar文件放入,如下图: 第二步: 将需要读取的配置文件也放入此目录(其他目录也可以,和脚本中…...

CSS相对定位和绝对定位的区别
CSS相对定位和绝对定位的区别 区别1:相对的对象不同 相对定位是相对于自己绝对定位是相对于离自己最近的有定位的祖先 区别2:是否会脱离文档流 相对定位不会脱离文档流,不会影响其他元素的位置绝对定位会脱离文档流,会影响其他元素的布局 代…...
SpringCloud之nacos共享配置文件实现多数据源灵活切换
目录 前言 1.引入Springboot相关的aop切面依赖 2.创建自定义注解DataSourceKey 3.创建对ThreadLocal类 4.创建aop切面 5.创建动态数据源类 6.创建多数据库连接配置类 7.关键代码讲解 8.nacos主要配置 前言 通过Spring AOP(面向切面编程)的功能来动…...

原生小程序生成二维码方法之一
效果图: 第一步:下载对应的包并构建(工具---》构建npm) npm install weapp-qrcode --save 第二步:在wxml页面声明canvas <canvas style"width: 200px; height: 200px;margin:0 auto;" canvas-id"myQ…...

Kubernetes k8s Pod容器 探针 健康探测
目录 Pod容器健康探测 为什么要对容器做探测? 启动探测startupprobe 存活性探测livenessProbe 就绪性探测readinessProbe ReadinessProbe LivenessProbe startupProbe配合使用示例一般程序中需要设置三种探针结合使用,并且也要结合实际情况ÿ…...

Conformal low power-2.电源感知等效性检查
电源感知等效性检查 ■ 第24页:电源感知等效性检查概述 ■ 第24页:启动低功耗(等效性检查)软件 ■ 第25页:电源感知等效性检查流程 ■ 第28页:电源感知等效性检查示例Do文件 电源感知等效性检查概述…...

【密码学】从有限状态自动机到密钥流生成器
本文是对流密码内容的拓展,在流密码中种子密钥通过一个伪随机数生成器产生一个与明文等长的伪随机密钥流。而本文的内容就是在回答这样两个问题: 伪随机密钥流是如何生成的?流密码、流密钥生成器和有限状态自动机之间是什么关系?…...

3.相机标定原理及代码实现(opencv)
1.相机标定原理 相机参数的确定过程就叫做相机标定。 1.1 四大坐标系及关系 (1)像素坐标系(单位:像素(pixel)) 像素坐标系是指相机拍到的图片的坐标系,以图片的左上角为坐标原点&a…...

Centos7 安装Docker步骤及报错信息(不敢说最全,但是很全)
一、操作系统要求: 要安装Docker Engine,您需要CentOS 7及以上的维护版本。存档版本不受支持或测试。必须启用centos临时存储库。默认情况下,此存储库已启用,但如果已禁用,则需要重新启用它。建议使用overlay2存储驱动…...
【C语言】符号优先级详解
C语言符号优先级详细解析 在C语言中,不同的运算符具有不同的优先级和结合性,这决定了在表达式中运算符的计算顺序。理解这些优先级和结合性是正确编写和理解C语言程序的基础。本文将详细解析C语言中的符号优先级,包括各类运算符的优先级、结…...

天翼云高级运维工程师202407回忆题库 最新出炉
备考天翼云高级运维工程师 必须备考天翼云 之前觉得外企牛批 然后民企,拔地而起,民企也不错,工资高,有钱途 现在看来看去,还是国企好,体制内的,有保障,树大根深 有必要备考下天…...
在Python中什么是上下文管理器以及如何使用with语句来管理资源
什么是上下文管理器? 在Python中,上下文管理器(Context Manager)是一种支持with语句的协议,允许对象管理资源,如文件、线程锁的获取和释放、数据库连接等。上下文管理器负责资源的分配和释放,确…...

(四)、python程序--贪吃蛇游戏
一、绪论 贪吃蛇游戏。 已实现功能: 1、上下左右移动; 2、吃食物,随机生成食物; 3、碰撞检测,判断是否游戏结束。 二、代码分享 1、main.py import pygame import sys import food as c_food import snake as c…...
什么是DNS欺骗
DNS欺骗(DNS Spoofing),也称为DNS缓存中毒(DNS Cache Poisoning),是一种网络攻击形式,攻击者通过操纵DNS记录,将用户重定向到一个伪造的、恶意的网站。这些恶意网站可能看起来与用户…...
C++实现对结构体信息排序
思路解读: 定义结构体 Student: 结构体 Student 用来表示学生信息,包含两个成员变量:name(学生姓名)和 score(学生分数)。Student 结构体定义了一个构造函数,用于初始化 name 和 sco…...

[CTF]-PWN:House of Cat堆题型综合解析
原理: 调用顺序: exit->_IO_wfile_jumps->_IO_wfile_seekoff->_IO_switch_to_wget_mode _IO_wfile_seekoff源码: off64_t _IO_wfile_seekoff (FILE *fp, off64_t offset, int dir, int mode) {off64_t result;off64_t delta, new…...

18.按键消抖模块设计(使用状态机,独热码编码)
(1)设计意义:按键消抖主要针对的时机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子就断开。因而在闭合以及断开的瞬…...

【Hec-HMS】第一期:模型简介及软件安装
HEC-HMS模型简介及软件安装 HEC-HMS模型简介建模思路 HEC-HMS软件安装步骤1:安装InstallShield Wizard步骤2:安装HEC-HMS 参考 HEC-HMS模型简介 HEC-HMS(The Hydrologic Engineering Center’s-Hydrologic Modelimng System),美国陆军工程兵…...
逻辑回归不是回归吗?那为什么叫回归?
RNN 逻辑回归不是回归吗?那为什么叫回归?逻辑回归的基本原理逻辑函数(Sigmoid函数)二元分类 为什么叫做“回归”?逻辑回归的应用场景总结 逻辑回归不是回归吗?那为什么叫回归? 逻辑回归&#x…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...