1,SIWAREX CS概述 SIWAREX CS称重模块是ET200S的一个功能模块(FM),可以直接插入到一个30mm宽的终端模块上。称重传感器、电源和串行接口都是通过具有16个连接点的终端模块来连接。通过ET200S可方便的把SIWAREX CS称重模块集成到SIMATIC系统中。本文通过将一个SIWAREX CS模块集成一套到IM151-7 CPU的例程简要介绍如何用SIWATOOL CS软件和STEP7软件对SIWAREX CS进行校秤和称重。 ......
1,SIWAREX CS概述
SIWAREX CS称重模块是ET200S的一个功能模块(FM),可以直接插入到一个30mm宽的终端模块上。称重传感器、电源和串行接口都是通过具有16个连接点的终端模块来连接。通过ET200S可方便的把SIWAREX CS称重模块集成到SIMATIC系统中。本文通过将一个SIWAREX CS模块集成一套到IM151-7 CPU的例程简要介绍如何用SIWATOOL CS软件和STEP7软件对SIWAREX CS进行校秤和称重。
硬件连接
所用到的硬件设备:
名称 数量 订货号
IM 151-7 CPU,ET200S接口模块 1 6ES7151-7AA13-0AB0
PM-E DC 24V 电源模块 1 6ES7138-4CA01-0AA0
电源模块端子块,螺钉型 1 6ES7193-4CD20-0AA0
SIWAREX CS称重模块 1 7MH4910-0AA01
电子模块端子块,30mm宽,螺钉型 1 6ES7193-4JA00-0AA0
MMC卡(64KB) 1 6ES7953-8LF20-0AA0
PS307 24VDC电源 1 6ES7307-1EA00-0AA0
CP5512编程卡 1 6GK1 551-2AA00
MPI/DP编程电缆 1
串口电缆 1
称重传感器仿真器 1
笔记本电脑 1
所用到软件:
名称 订货号
STEP7 V5.4 组态编程软件
WINCC Flexible2007 触摸屏组态软件
SIWATOOL CS校秤软件 7MH4910-0AK01
示例项目及手册 http://support./CN/view/en/19249858/130000免费下载
系统图如下:
RS232串口电缆的对应关系如下:
给系统通电,下载正确的硬件组态,观察指示灯,察看是否有“SF”故障灯亮。正常显示如下:
2,通过SIWATOOL CS软件校秤
在电脑上安装SIWATOOL CS软件后,可通过RS232串口联接到SIWAREX CS模块进行校秤。使用SIWATOOL CS 校秤,只需在模块正确通电后即可,而与CPU是否运行,是否进行了组态编程等无必要关系。
点击“Online”通过RS232建立电脑与称重模块的连接,如果建立连接时,在不断的重试,请检查接线及通讯设置。
校秤主要在Adjustment parameter (DR3) 画面中完成。建立连接后,在空秤的情况下,选择校正零点有效命令,该命令将命令代码3发送到称重模块。
执行命令后,此时显示重量变为0.00Kg,选择接收,这样就可以将Adj.digits 0的转换值给读取上来。此值请勿做任何修改,如果修改,会导致测量值的线性偏差。
修改校正砝码的重量Adj. weight1。注意,所填数据的实际含义与在“Scales parameter”内设置的小数点位数和重量单位有关。譬如若小数位为2,单位为kg,所设砝码重量为100KG,那在Adj.weight1处就要填写10000。
此次校准砝码重量为200KG,则需要写入20000。
选择发送,将校正砝码重量写入SIWAREX CS模块中。
增加相应的砝码,此时显示重量为175.45Kg,为校秤前不正确的重量(所加砝码的重量值,至少在传感器量程的5%以上,越大越好,建议在60%以上)。点击校正重量1有效命令,该命令将命令代码4发送到称重模块。
命令完成后,显示重量变为200Kg,这是校称完成后的正确重量。重新选择接收一下,这样数据Adj.digits 1就保存下来了。
至此,校秤过程结束,可以自由增加重量,进行称重了,显示重量即为正确的称重重量。
可在如下图界面查看相应的状态信息及故障信息:
3,通过STEP 7软件校秤
(1) 硬件组态及参数设置:
西门子6EP1334-2AA01
(2) PLC软件编制
通过 25822042下载示例项目。示例项目分别提供了各种不同ET200S接口模块的完整的PLC程序和WINCC Flexible组态程序,用于调校秤重模块。
根据ET200S接口模块的不同,从示例项目中选择相应的程序复制到当前项目中,下载到PLC里。
其PLC程序结构如下:
OB100:起动组织块,清除命令
OB35: 周期性写命令,用于读取当前过程值
OB1: 主循环程序,循环调用FB42、FC2、FC30
FB42: 核心功能程序,处理与称重模块的数据通信,命令的执行。
FC2: 处理报警信息
FC30: 管理三组对称重模块的命令
DB20: 秤矢量数据块
DB21: 秤数据块
DB41: FB42“SICS_DR“的背景数据块
DB100:报警信息数据块
核心功能程序块FB42,其背景数据块DB41,调用过程如下:
CALL "SICS_DR" , DB41
ADDR :=256 //称重模块起始地址
DB_SCALE :=21 //秤数据块号
DB_VECTOR :=20 //秤矢量数据块号
CMD_IN :="DB_SCALE_CS".i_CMD_INPUT //输入命令
SEL_PROC_VAL :="DB_SCALE_CS".b_SELECT_PROC_VAL //输入选择输出过程值代码
EXT_TARA :="DB_SCALE_CS".i_PRESET_TARE //设定皮重
CMD_INPR :="DB_SCALE_CS".bo_CMD_IN_PROGRESS //命令处理中
CMD_FOK :="DB_SCALE_CS".bo_CMD_FINISHED_OK //命令处理完成
CMD_ERR :="DB_SCALE_CS".bo_CMD_ERR //命令故障
CMD_ERR_C :="DB_SCALE_CS".b_CMD_ERR_CODE //故障代码
REF_COUNT :="DB_SCALE_CS".b_INFO_REFRESH_COUNT //刷新计数
ACT_SEL_PROC_VAL :="DB_SCALE_CS".b_SELECTED_PROC_VAL //实际选择的过程值代码
PROC_VAL1 :="DB_SCALE_CS".i_PROCESS_VALUE //实际过程值
SC_STATUS :="DB_SCALE_CS".w_SCALE_STATUS //状态值
ERR_MSG_C :="DB_SCALE_CS".b_OPR_ERR_MSG //操作员错误信息
FB_ERR :="DB_SCALE_CS".bo_FB_ERR //功能块错误
FB_ERR_C :="DB_SCALE_CS".b_FB_ERR_CODE //功能块错误代码
START_UP :="DB_SCALE_CS".bo_START_UP_IN_PROGRESS //模块正在启动
CMD_EN :="DB_SCALE_CS".bo_CMD_TRIGGER //命令触发器
(3)通过变量表读写进行校秤
相关命令含义如下,对DR3块中的相关数据读写,需要用到命令203和403。
首先通过命令203,读取校秤的相关参数,如实际重量,校正重量1的读数,如下
然后,执行写入放置砝码的重量,比如90KG,需要写入9000(最后两位为小数点为),执行命令403,点击触发即可。
此时校正砝码的重量已经写入到SIWAREX CS模块中。下面执行校准零点和校准量程1的命令
校正零点和量程1的命令代码分别是3和4
执行命令3,零点有效命令
触发命令激活后,实际值变为0。
增加90KG的砝码放入传感器上,此时可能实际重量并未显示90KG
执行命令4,校正重量1有效,触发命令激活后,秤的实际值就显示为砝码重量90.00KG
此命令执行完后,校秤工作完成。
(4)通过触摸屏面板进行校秤
示例程序中集成有触摸屏程序。正确下载触摸屏程序并与CPU建立联接后,可在触摸屏上对称重模块进行调校。
调校过程如下:
先在**幅画面中,设定称重模块的一些特性,如重量单位,特征值,显示小数点位数等。
在画面中,点击 图标,该按钮将命令代码(db21.dbw28,i_CMD2_Code)值设为403,并置位命令触发信号(db21.dbx30.0,bo_CMD2_Trigger)。PLC程序运行后将设定值写入称重模块。
在空称的情况下,在面板上点击校正零点有效命令,该命令将命令代码(db21.dbw28,i_CMD2_Code)值设为3 ,并置位命令触发信号(db21.dbx30.0,bo_CMD2_Trigger),通过PLC程序发送到称重模块。
命令执行后,显示重量变为0 Kg.
在调校重量1的输入框中输入调节重量1的砝码重量,此处设为180Kg,点 图标,将此值发送到称重模块,然后在秤上增加相应砝码,此时秤读数开始变化,显示为150.79Kg,为校秤前不正确的重量。
点击按钮调节重量1有效按钮,该命令将命令代码(db21.dbw28,i_CMD2_Code)值设为4,并置位命令触发信号(db21.dbx30.0,bo_CMD2_Trigger),通过PLC程序发送到称重模块。命令执行后,读数变为设定重量,至此校秤完成,可以正常称重。
可以在主画面中读取秤的当前重量和状态:
在PLC中,DB21.DBW14代表以整数形式代表了当前重量,DB21.DBW18代表了称重模块的状态,调试人员可方便的应用这些信息将称重系统集成到更复杂的自动化系统中。
有关SIWAREX CS称重模块的更多的信息可参考《SIWAREX CS手册》。
订货号
PROFIBUS网络部件:
网卡及电缆
6ES7 972-0CB20-0XA0
6ES7 972-0CB35-0XA0
6ES7 972-0CC35-0XA0
6GK1 561-1AA01
6GK1 551-2AA00
6GK1 561-3AA01
6GK1 561-3FA00
6GK1 561-4AA01
6GK1 561-4FA00
6GK1562-1AA00
6GK1571-1AA00
6FX800开头
6XV1 840-2AH10
6FC5210-0DF22-2AA0
6XV1 830-0PBH30
6XV1 830-0EH10
6XV1 830-3EH10
6XV1 830-0AH10
6XV1 820-5AH10
6XV1 820-5BH50
6XV1 820-5BT10
6GK1 901-0DA20-0AA0
6ES7 901-0BF00-0AA0
6ES7 901-1BF00-0XA0
链接模板
6GK1 415-2AA01
6GK1 415-0AA01
6ES7 158-0AD01-0XA0
6ES7 157-0AC83-0XA0
6ES7 157-0AD82-0XA0
6XV1 830-5EH10
6XV1 830-5FH10
6ES7 195-7HF80-0XA0
6GK1 905-0AA00
6GK1 905-0AD00
6GK1 905-0AB10
6GK1 905-0AC00
总线连接器
6GK1 905-6AA00
6ES7 972-0BA50-0XA0
6ES7 972-0BB50-0XA0
6ES7 972-0BA12-0XA0
6ES7 972-0BB12-0XA0
6ES7 972-0BA41-0XA0
6ES7 972-0BB41-0XA0
6GK1 500-0EA02
6GK1 500-0FC00
网络部件
6ES7 972-0AA01-0XA0
6ES7 972-0AB01-0XA0
6ES7 972-0DA00-0AA0
6ES7 972-4AA02-0XA0
6GK1 500-3AA00
6GK1 503-0AA00
6GK1 503-3CA00
6GK1 503-2CB00
6GK1 503-3CB00
6GK1 503-3CC00
6ES7 181-0AA01-0AA0
6ES7 193-8MA00-0AA0
6ES7 193-8LA00-0AA0
6ES7 193-8LB00-0AA0
软件
6GK1 704-5CW64-3AA0
6GK1 704-5DW64-3AA0
6GK1 704-5SW64-3AA0
6GK1 713-5DB64-3AA0
6GK1 713-5FB64-3AA0
6GK1 713-5CB64-3AA0
工业以太网
网卡及电缆:
6GK1 161-3AA01
6GK1 161-2AA00
6GK1 161-6AA00
6GK1 151-2AA00
6GK1 151-5AA00
6GK1 611-0TA01-1DV0
6XV1 850-0AH10
6XV1 850-0BT10
6XV1 850-0BN15
6XV1 870-3QN10
6XV1 850-0BH20
6XV1 840-2AH10
6XV1 850-2LN10
6XV1 850-2GN10
6XV1 850-2JN10
6XV1 850-2HN10
6GK1 901-1FC00-0AA0
说明:
按照如下操作将‘SIMODRIVE传感器等时线’同步 PROFIBUS DP 编码器(订货号:6FX2001-5xPxx)连接到 Technology CPU:
配置同步 PROFIBUS DP 编码器。
设置同步 PROFIBUS DP 编码器参数。
将硬件配置载入 CPU。
组态同步 PROFIBUS DP 编码器的技术对象。
创建 technology DB。
插入 FB MC_ExternalEncoder。
1. 配置同步 PROFIBUS DP 编码器
从硬件目录中将编码器插入项目中。编码器位于 “PROFIBUS_DP >SIMODRIVE” (图 1)。
使用拖放将编码器加入到 PROFIBUS 主站系统。
现在将报文 81 插入编码器站的槽 1。
图 1:硬件目录中的编码器选择
2. 设置同步 PROFIBUS DP 编码器的参数
右击从站(图1:上面部分)并选择“Object Properties”。 进入“Parameter Assignment”栏并且设置相关值。这些值的设置参考条目号 18769911 。
图2:“List of usable encoders”中的参数分配例子 (条目号: 18769911)
图3:分配DP从站参数
然后,在 “Isochrone Mode”页面,使能选项“Synchronize DP slave to constant DP bus cycle time”,然后设置读取和输出过程值的相关时间值。使用编码器的默认值可以设置以下的 Ti/To 值,例如:
Ti min : = 0.125 ms
To min : = 0.375 ms
关于等时线模式和 Ti/To 主题的更多信息参见条目号:15218045中的手册“SIMATIC等时线模式”中的 2.8.3 章节和手册“SIMODRIVE 传感器**值编码器 PROFIBUS DP”(操作员说明), *10 章,出版于 03/04,订货号为6SN 1197-0AB10 - 0YP3。
1多功能测量表SENTRON PAC3200简介
SENTRON PAC3200电能监视设备可精确提供系统特性,包括电压和电流较大值、较小值和平均值,功率值、频率、功率因数、对称性、逻辑计算、负载趋势、谐波和总谐波失真等。SENTRON PAC3200可检测 50 多个基本数值,具有 10个电能计数器,可用于全面负载检测。它们的测量准确度满足电能计数器标准所规定的较高要求。PAC3200带有MODBUS RTU-RS485接口、PROFIBUS-DP接口和MODBUS TCP 接口,可以很方便将PAC3200的数据上传到PLC中进行处理,也可以上传到HMI中进行数据分析、处理及归档。对于西门子系统可以轻松地将PAC3200集成到上位自动化系统中,例如,集成到西门子 SIMATIC PCS 7 powerrate 和SIMATIC WinCC powerrate 软件包中。
2 PAC3200通信接口对比
PAC3200可以通过MODBUS RTU RS485接口、MODBUS TCP 以太网接口以及现场总线PROFIBUS-DP接口与PLC和HMI通信。下面分别以连接S7-300 PLC为例,在通信性能、连接的个数、编程方面进行对比:
1) 通信性能:PROFIBUS-DP使用令牌方式由主站依次访问从站,是实时现场总线,通信响应快,通信的响应时间应考虑PAC3200数据的刷新时间(自身刷新时间可能较PROFIBUS-DP刷新时间慢);如果选择以太网MODBUS TCP 通信,由于不是实时网络,通信性能次之,通信的响应时间也应考虑PAC3200数据的刷新时间(自身刷新时间可能较以太网刷新时间慢);使用RS485 MODBUS RTU通信,由于基于串口,通信性能不能与以太网与PROFIBUS-DP相比较。
2) 连接个数:使用PROFIBUS-DP,基于主站的性能,较多可以连接126个站点;以太网MODBUS TCP 通信,基于CP的连接个数,通常16个;使用RS485 MODBUS RTU,可以连接一个网段,典型值31个站点。
3) 编程:使用PROFIBUS-DP,不需要编写通信程序;使用以太网MODBUS TCP 通信,需要编写发送接收通信程序;使用RS485 MODBUS RTU通信,需要编写从站轮询程序,比较麻烦,如果没有购买MODBUS RTU的驱动,还需要编写通信程序。
4) 价格:PROFIBUS-DP与RS485 MODBUS RTU通信需要购买选件网卡,而PAC3200本身集成以太网接口,支持MODBUS TCP 通信。
下面将介绍PAC3200的MODBUS TCP 通信。
3 MODBUS TCP 通信报文
MODBUS TCP 使MODBUS RTU协议运行于以太网,MODBUS TCP使用TCP/IP和以太网在站点间传送MODBUS报文,MODBUS TCP结合了以太网物理网络和网络标准TCP/IP以及以MODBUS作为应用协议标准的数据表示方法。MODBUS TCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式,MODBUS TCP插入一个标准的MODBUS报文到TCP报文中,不再带有数据校验和地址,如图1所示:
图1 MODBUS TCP报文
由于使用以太网TCP/IP数据链路层的校验机制而保证了数据的完整性,MODBUS TCP 报文中不再带有数据校验”CHECKSUM”,原有报文中的“ADDRESS”也被“UNIT ID”替代而加在MODBUS应用协议报文头中。
MODBUS TCP服务器使用502端口与客户端进行通信。
S7-300 与PAC3200 之间进行MODBUS TCP 通信时,MODBUS应为协议的报文头赋值如下:
byte 0: transaction identifier (高字节) – 为0
byte 1:transaction identifier(低字节) - 为0
byte 2:protocol identifier(高字节) = 0
byte 3:protocol identifier (低字节) = 0
byte 4:length field (高字节) = 0 (因为所有的报文小于256)
byte 5:length field (低字节) = 后面跟随的字节数
byte 6:unit identifier -原从站地址,这里为0
byte 7:MODBUS 功能码,通过功能码发送通信命令
byte 8 ~:后续的字节数与功能码相关
4 PAC3200支持的MODBUS TCP 功能码
在MODBUS TCP 的报文中,通过使用功能码请求通信伙伴的数据,如对内部寄存器的读写操作、读输入寄存器、写输出寄存器等。不同的操作使用不同的功能码,如FC1、2、3、4、5、6、7、15、16等,PAC3200支持FC2、FC3、FC4、FC6、FC16,在下面将介绍PAC3200这些功能码的报文格式:
FC2 读输入的位信号:
请求:
Byte 0: 功能码,2
Byte 1-2: 开始的位地址
Byte 3-4:位的个数 (1-2000)
响应:
Byte 0: 返回的功能码 2
Byte 1: 返回的字节个数 (B=(位的个数+7)/8)
Byte 2-(B+1): 位信号的值 (较低有效位是**个位信号)
FC3 读多个寄存器信号:
请求:
Byte 0: 功能码,3
Byte 1-2: 寄存器开始地址
Byte 3-4: 寄存器的个数 (1-125)
响应:
Byte 0: 返回的功能码 3
Byte 1: 返回的字节个数 (B=2倍寄存器数)
Byte 2-(B+1): 寄存器的值
FC4 读输入寄存器信号:
请求:
Byte 0: 功能码,4
Byte 1-2: 输入寄存器开始地址
Byte 3-4: 输入寄存器的个数 (1-125)
响应:
Byte 0: 返回的功能码 4
Byte 1: 返回的字节个数 (B=2倍输入寄存器数)
Byte 2-(B+1): 输入寄存器的值
FC6 写单个寄存器信号:
请求:
Byte 0: 功能码,6
Byte 1-2: 寄存器地址
Byte 3-4: 寄存器的值
响应:
Byte 0: 返回的功能码 6
Byte 1-2: 寄存器地址
Byte 3-4: 寄存器的值
FC16 写多个寄存器信号:
请求:
Byte 0: 功能码,10(HEX)
Byte 1-2: 寄存器开始地址
Byte 3-4: 寄存器的个数 (1-100)
Byte 5:字节的个数 (B=2倍输入寄存器数)
Byte 6-(B+5) 预置的寄存器值
响应:
Byte 0: 返回的功能码 10(HEX)
Byte 1-2: 寄存器开始地址
Byte 3-4: 寄存器个数
注:
一个寄存器为两个字节,上面介绍的首地址为MODBUS TCP 报文中PDU的首地址。
5 PAC3200的地址区
使用不同的功能码可以对PAC3200不同的地址区进行操作:
测量变量:例如电压、电流值、输入、输出等变量可以使用FC3和FC4,FC3与FC4功能相
同,两者都可以读。
状态参数:例如限制值0、1、2以及输入0、输出0等位信号,使用FC2可以读出这些信
号。
设定参数:例如连接类型、是否使用电压变送器电压、一次侧电压等,可以使用FC3、FC4进
行读操作,两者功能相同,使用FC16进行写操作。
通信参数:例如IP地址、网关等参数,可以使用FC3、FC4进
行读操作,两者功能相同,使用FC16进行写操作。
信息参数:例如产品的序列号等,可以使用FC3、FC4进行读操作,两者功能相同,使用
FC16进行写操作。
命令参数:例如复位较大值、较小值以及能量计数器等参数,使用FC6进行写操作。
6 PAC3200侧的配置
使用PAC3200集成的以太网通信接口进行MODBUS TCP通信,需要对接口进行设置,步骤如下:
1):使用F4(Menu) > "SETTINGS> COMMUNICATION 进入如下界面如图2所示:
图2 通信界面
2):使用F4(Edit)键对选中的条目进行编辑,在通信界面中设定MODBUS TCP 通信的IP地
址、子网掩码及网关,在“PROTOCOL”中选择“TCP”后退出,PAC3200侧设置完成。
7 PLC侧设置
在PLC侧作的设置是为了与PAC3200建立TCP连接,以S7-300为例,步骤如下:
1):在SIMATIC Manager中创建一个S7-300的项目,本例中项目名为MODBUS_TCP。
2):插入一个S7-300站,从硬件目录中插入CP343-1,本例为CP343-1IT,如图3所示:
图3 插入以太网模块
3):双击CP343-1的PN IO 槽,配置IP地址、子网掩码,CP343-1的IP地址必须与
PAC3200在一个网段中,否则需要配置路由器地址,如图4所示:
图4 设置CP地址参数
4):在硬件界面中点击“Options”->“configure network”进入网络连接界面,如图5所示:
图5 网络配置界面
5):点击CPU,出现网络连接表,双击表中任一空格,选择通信连接类型,由于CP343-1与
PAC3200使用以太网TCP/IP的通信方式,所以连接类型选择为“TCP CONNECTION”,如
图6所示:
西门子6SN1123-1AB00-0BA1
图6 选择连接类型
6):确认选择的连接类型后,进入属性界面,如图7所示:
图7 连接属性-通用信息栏
选择“Active connection establishment”选项,表示在通信连接初始化中由CP343-1主动发出连接请求。同样在“Block parameters”中自动生成通信参数,用于编程时的参数赋值。
7):在连接属性的地址栏中,配置通信双方的地址,如图8所示:
图8 连接属性-地址栏
在IP地址中填写PAC3200的地址,本例中为192.168.1.13,在PORT端口号中定义本方的端口号,为了不与网络中固定功能的端口号冲突,西门子PLC通常以2000开始,PAC3200的端口号由MODBUS TCP规定固定为502。
8):配置完成后,存盘编译,将整个硬件配置下载到PLC中,使用网线连接PAC3200后,在
网络配置界面中使用菜单命令:“PLC”->“activate connection status”,查看实际连 接状态,如图9所示:
图9 查看连接状态
如果连接状态显示成功(符号为绿色的三角),可以进行下一步工作,如果出现红方块,表示没有建立连接,需要检查通信双方的设置及网线,通常的情况下,PAC3200设置完成后需要重新上电启动。
如果需要与多个设备进行MODBUS TCP通信,则需要建立多个通信连接,PLC侧的端口号不能相同,可以为2000、2001、2002等,但是连接的不同MODBUS TCP的服务器端口号必须为502,只是IP地址不同。
8 PLC编程
在前面的章节中已经介绍了MODBUS TCP的报文格式,在PLC侧的通信程序就必须符合这种报文格式。下面以例子的方式介绍通信程序的编写。
在OB1中调用用于CP343-1的通信函数FC5和FC6,如果是S7-400,需要在S7-400的函数库中调用FC50和FC60,如图10所示:
图10 调用通信函数
通信函数FC5的参数含义:
ACT :沿触发信号。
ID :参考本地CPU连接表中的块参数(图7)。
LADDR :参考本地CPU连接表中的块参数(图7)。
SEND : 发送区,较大通信数据为8K字节。
LEN : 实际发送数据长度。
DONE :每次发送成功,产生一个上升沿。
ERROR :错误位。
STATUS:通信状态字。
通信函数FC6的参数含义:
ID :参考本地CPU连接表中的块参数。
LADDR :参考本地CPU连接表中的块参数。
RECV : 接收区。接收区应大于等于发送区。
NDR : 每次接收到新数据,产生一个上升沿。
ERROR :错误位。
STATUS:通信状态字。
LEN : 实际接收数据长度。
如何实现MODBUS TCP通信,可以通过例子进行说明,例如读出PAC3200设备的IP地址,通过PAC3200的手册可以知道,IP地址为通信参数,偏移地址(开始地址)为63001,占用两个寄存器,上面已经介绍通信参数的读取可以使用功能码FC3或FC4读出,MODBUS TCP 的报文头(参考图1)BMAP部分占用7个字节,协议数据单元(PDU)部分占用5个字节,那么通过通信函数FC5一共发送12个字节,本例中数据发送区为DB1.DBB0~DB1.DBB11,然后将请求的内容分别赋值到DB1.DBB0~DB1.DBB11中,请求报文格式如下:
DB1,DBB0=0 transaction identifier (高字节) – 为0
DB1,DBB1=0 transaction identifier(低字节) - 为0
DB1,DBB2=0 protocol identifier(高字节) = 0
DB1,DBB3=0 protocol identifier (低字节) = 0
DB1,DBB4=0 length field (高字节) = 0 (因为所有的报文小于256)
DB1,DBB5=6 后面跟随的字节数
DB1,DBB6=7 unit identifier -原从站地址,这里为任意值
M**
DB1,DBB7=4 MODBUS 功能码
DB1,DBB8= F6(HEX)输入寄存器开始地址(高字节)
DB1,DBB9=19 (HEX) 输入寄存器开始地址(低字节)
DB1,DBB10=0 输入寄存器的个数(高字节)
DB1,DBB11=2 输入寄存器的个数(低字节)
PDU
DB1.DBB0~DB1.DBB11经过赋值请求信息后,例子中M0.5每个上升沿将发送一次请求,如果通信成功,通过FC6将接收到PAC3200的返回信息,返回信息为13个字节,放入到数据接收区DB2.DBB0~DB2.DBB12中,接收报文的格式如下:
DB2,DBB0=0 transaction identifier (高字节) – 为0
DB2,DBB1=0 transaction identifier(低字节) - 为0
DB2,DBB2=0 protocol identifier(高字节) = 0
DB2,DBB3=0 protocol identifier (低字节) = 0
DB2,DBB4=0