10、Modbus RTU Slave实验ST


功能:等待主站取数据;
应用场景:广泛应用于Modbus RTU协议;

    MODBUS RTU从站实验ST源码下载:
10.Modbus RTU Slave实验ST.rar
23.3 KB

一、下载程序及重点参数

1. 下载好Modbus RTU Slave实验ST源码,解压并打开程序;
2.打开modbusRtu.ST,上半部分为程序声明,下半部分为具体程序。
3.PORT为设置串口端口号的变量,1为RS_232,2为RS_485;BAUD串口波特率;PARITY为奇偶校验位,0为无校验,1为奇校验,2为偶校验;DATABITS为数据位;STOPBITS 为停止位。
4.ENABLE为读写是能;PTR为数组指针;LENGTH为数组长度
5.选择对应网关  _图5.1(网关连接为配置网关时的命名,如果配置了忘记【图5.2和图5.3】:单击PLC→连接...→驱动是RS232为串口下载程序的驱动/驱动是TCP432为网口下载程序的驱动,对应驱动看名称;如果未配置过请参照OPENPCS网关配置手册)  
图5.1
图5.2
图5.3
6.下载程序
7.如果出现图1弹窗选“确定”和否都可以,按需选择;如果出现图2弹窗选“是”
图1
图2 
8.运行程序

二、接线

1.不同产品串口接口定义
1.1  下图为GCAN-PLC-301和302的232和485通讯接口示意图 使用DB9接口引出【GCAN-PLC-301/302用户使用手册_中文版】  
232接口  
485接口  
1.2  下图从左至右依次为GCA-PLC-320、321、322的串口通讯接口示意图_使用插拔式双排弹簧按压式端子引出。【GCAN-PLC-320/321/322用户使用手册_中文版】 
1.3   下图为GCA-PLC-324E/R的串口通讯接口示意图_使用DB9接口引出  【GCAN-PLC-324E/R用户使用手册_中文版】  
  1.4 下图为GCA-PLC-326E/R的串口通讯接口示意图_使用DB9接口引出   【GCAN-PLC-326E/R用户使用手册_中文版
  1.5 下图为GCA-PLC-400的串口通讯接口示意图_使用RJ45端子引出【GCAN-PLC-400用户使用手册_中文版
  1.6  下图为GCA-PLC-510的串口通讯接口示意图_使用RJ45端子引出  【GCAN-PLC-510用户使用手册_中文版
  1.7  下图为GCA-PLC-511的串口通讯接口示意图_使用4P端子和RJ45接口引出  【GCAN-PLC-511用户使用手册_中文版
2.接线方法
2.1  232接线,GND接GND,232RX接232TX,232TX接232RX,RS232 总线的连接如图所示:
2.2  485接线,A+接A+,B-接B-,RS485 总线的连接如图所示:

三、演示通讯(GCAN-PLC-302+USB转RS_232/485)

1.打开Modbus Poll→Connection→Connect...
2.选择Serial Port→选择对应端口→选择对应的波特率等相关参数→ok
3.主站添加的什么功能码,就可以通过底层数据看到对应功能码的交互(从站在数组里给的什么值,主站就会读取对应的值);看底层数据办法:Display→communication...
4.Modbus 标准地址与各个功能码的对应关系如下所示
下面以在 RTU 传输模式下通讯为例,对这些功能码进行详细介绍
4.1功能码:01H
代码功能:读取线圈状态(DO)
说明:读取从机 DO 的 ON/OFF 状态,不支持广播。
查询:查询信息规定了要读的起始线圈地址和线圈量,线圈的起始地址为 0000H,1-16 个线圈的寻址地址分为 0000H-0015H。
响应:响应信息中的各线圈的状态与数据区的每一位的值相对应,即每个 DO 占用一位(1 = ON, 0 = OFF)。数据区从高位到低位依次为 DO7、DO6......DO0。 
4.2功能码:02H
代码功能:读取输入状态(DI)
说明:读取从机 DI 的 ON/OFF 状态,不支持广播。
查询:查询信息规定了要读的输入起始地址及输入信号的数量,输入寻址起 始地址为 0000H,输入 1-16 所对应的地址分别为 0-15。
响应:响应信息中的各输入口的状态与数据区的每一位的值相对应,即每个 DI 占用一位(1 = ON, 0 = OFF)。数据区从高位到低位依次为 DI7、DI6......DI0。
4.3功能码:03H
代码功能:读取保持寄存器
说明:读从机保持寄存器的二进制数据,不支持广播。
查询:查询信息规定了要读的寄存器起始地址及寄存器的数量,寄存器寻址 起始地址为 0000H,寄存器 1-16 所对应的地址分别为 0-15。
响应:响应信息中的寄存器数据为二进制数据,每个寄存器分别对应 2 个字 节,第一个字节为高位值数据,第二个字节为低位数据。
4.4功能码:04H
代码功能:读取输入寄存器(AI)
说明:读取从机输入寄存器(3X 类型)中的二进制数据,不支持广播。
查询:查询信息规定了要读的寄存器起始地址及寄存器的数量,寄存器寻址 起始地址为 0000H,寄存器 1-16 所对应的地址分别为 0-15。
响应:响应信息中的寄存器数据为二进制数据,每个寄存器分别对应 2 个字 节,第一个字节为高位值数据,第二个字节为低位数据。
4.5功能码:05H
代码功能:强置单线圈(DO)
说明:强制单个线圈(DO,0X 类型)为 ON 或 OFF 状态,广播时,该功能可 强制所有从机中同一类型的线圈均为 ON 或 OFF 状态。
查询:查询信息规定了需要强制线圈的地址及状态,线圈的起始地址为 0000H,寄存器 1-16 所对应的地址分别为 0-15。查询时,由查询数据区中的一 个常量,规定被请求线圈的 ON/OFF 状态,FF00H 值请求线圈处于 ON 状态, 0000H 值请求线圈处于 OFF 状态,其它值对线圈无效,不起作用。
响应:对这个命令请求的正常响应是在 DO 状态改变以后,原样传送接收到 的数据。
4.6功能码:06H
代码功能:预置单寄存器
说明:把一个值预置到一个保持寄存器(4X 类型)中,广播时,该功能把 值预置到所有从机相同类型的寄存器中。该功能可越过控制器的内存保护。使寄 存器中的预置值保持有效。只能由控制器的下一个逻辑信号来处理该预置值。若 控制逻辑中无寄存器程序时,则寄存器中的值保持不变。
查询:查询信息规定了要预置寄存器的类型,寄存器寻址起始地址为 0000H, 寄存器 1-16 所对应的地址分别为 0-15。
响应:对这个命令请求的正常响应是在寄存器值状态改变以后,原样传送接 收到的数据。
4.7功能码:10H(十进制为 16)
代码功能:预置多个寄存器
说明:把数据按顺序预置到各(4x 类型)寄存器中,广播时该功能代码可把数 据预置到全部从机中的相同类型的寄存器中。需要注意的是该功能代码可越过控 制器的内存保护,在寄存器中的预置值一直保持有效,只能由控制器的下一个逻 辑来处理寄存器的内容,控制逻辑中无该寄存器程序时,则寄存器中的值保持不变。
查询:信息中规定了要预置的寄存器类型,寄存器寻址的起始地址为 0。查 询数据区中指定了寄存器的预置值,M84 和 484 型控制器使用 10 位二进制数据, 2 个字节,剩余的高 6 位置 0。而其他类型的控制器使用一个 16 位二进制数据, 每个寄存器 2 个字节。
响应:正常响应返回从机地址、功能代码、起始地址和预置寄存器数。
2024-09-20
0 0