汇川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…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...