MODBUS协议是莫迪康公司1978年发明用于电子控制器进行控制和通信的协议。不同厂商生产的符合MODBUS协议的控制设备可以连成工业网络,进行集中监控。MODBUS协议采用主从(master-slave)技术,是一种问答方式的通信协议。每次通信均由主机发出数据请求信息,从机接收到正确消息后就可以发送数据到主机以响应请求;主机也可以直接发信息修改从机的数据,实现双向读写。
在工业自动化发展的进程中,Modbus成为了工业控制系统中的一种通用协议。由于该协议的简单且通用,得到众多仪表厂商的支持,成为仪表及智能终端的一项工业标准,在工业监控系统中得到广泛的应用。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以进行通信。
1、Modbus 设备选择
进入世纪星设备列表PLC大类中的标准Modbus协议,可以看到我们有5种Modbus设备,分别是Modbus RTU(十进制地址)、Modbus RTU(十六进制地址)、Modbus ASCII(十进制地址)、Modbus ASCII(十六进制地址)以及Modbus TCP/IP(十进制地址)。
首先,Modbus的三种通信方式:Modbus RTU、Modbus ASCII以及Modbus TCP/IP世纪星都全面支持,用户可以根据设备的通讯说明进行相应的选择。
其次,Modbus设备十进制和十六进制的区分除了方便一部分用户的同时,在设备选择的方面也给另一部分的用户造成困扰,针对这个问题我会给大家两点解释,:同样的一个设备,如果用十进制地址的Modbus驱动能连接得上的话。第二:Modbus协议已经成为工业控制系统中的一种通用协议,采用十进制的寄存器地址说明,如表1所示。
而有些厂商采用十六进制的寄存器地址说明,如表2所示。对于表2这样的协议说明方式,我们可以选择十六进制的Modbus驱动,用4 x 000A这个寄存器连接环境温度参数。
表一
表二
2.寄存器连接
要正确连接一个寄存器,有三个关键信息要从协议说明文档中获得:是该寄存器支持的功能码,第二是该寄存器的地址,第三是该寄存器的数据类型。
1)功能码
世纪星是根据Modbus协议中的功能码来区别寄存器名称,具体信息如表3所述:
在厂商所提供的协议说明文档中,都会注明寄存器所支持的功能码,用户可以根据上述表格对世纪星里的寄存器进行选择。例如:支持03H功能码的就选择4x,支持01H功能码的就选择0x。
2)寄存器地址
寄存器地址在协议说明文档中都会比较直观的列出,参看表1、表2,每个具体的参数都会对应一个寄存器地址,连接寄存器时只要将地址号连接在相应的寄存器名后面即可。
3)数据类型
位寄存器的连接方式比较单一,如图1所示。变量类型为I/O离散,数据类型为BIT,根据功能码选择寄存器名,并加上寄存器地址就可以正确连接该位寄存器。
模拟量寄存器的连接方式就比较多样化,如表4所示(下面对于寄存器名和寄存器地址暂不进行说明)。
主电机电压:变量类型选择I/O整数,数据类型选择LONG;
主电机电流:变量类型选择I/O实数,数据类型选择FLOAT;
环境温度:变量类型选择I/O整数,数据类型选择UINT;
T1:变量类型选择I/O整数,数据类型选择INT;
T2:变量类型选择I/O整数,数据类型选择BCD;
T3:变量类型选择I/O实数,数据类型为UINT或者INT,由于传送数据是实际值的100倍,在转换选项中选择线性转换就可以在工程中直接显示实际值;
图二
STATUS:变量类型选择I/O整数,数据类型选择UINT,需要在工程中对STATUS中的某个位进行显示和设置时,要使用世纪星中的Bit(Tagname,BitNo)和BitSet(“Tagname”,BitNo,Discrete_Value)这两个函数,具体的使用方式可以参考世纪星中的函数说明。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。