| 作者 | 主题 |
|---|---|
|
持光踏影 游民 经验值:82 发帖数:25 精华帖:0 |
楼主
主题:S7-1200的Modbus/TCP通讯,功能块TX_buffer管脚到底怎么定义数据类型?
S7-1200D 的Modbus/TCP通讯,功能块TX_buffer管脚到底怎么定义数据类型?
试过数组,如Array [1 .. 4] of uint 也不行,求助。。。
学无止境!
|
|
掠影匆匆 侠士 经验值:1492 发帖数:152 精华帖:39 |
9楼
主题:回复:S7-1200的Modbus/TCP通讯,功能块TX_buffer管脚到底怎么定义数据类型?功能块库使用说明 1)功能块库虽然是针对SENTRON PAC3200推出的,但是同样适用于任何支持 Modbus /TCP通讯的设备,包括PAC4200,WinCC V7,S7-300/400及第三方设备,只不过是功能块库中针对PAC3200具体定义了相关的PLC变量、DB块监控表等 2)当与非PAC3200的第三方设备通讯时只要调用PAC_FB(FB500),填写相关参数即可 3)该功能块库(PAC_FB FB500)只能实现S7-1200作为Modbus/TCP 客户端(Client),通讯对方作为服务器(Server),使用上还是有一定的限制,不过相信官方将会对块库改善后能够做为服务器进行通讯 4)该功能块库(PAC_FB FB500)目前只能实现功能码FC03(读多个保持寄存器)和 FC16(写多个保持寄存器),目前功能上来说还比较简单,还不能实现离散量的读写,对于离散量的读写必须合并到一个寄存器中来完成(即将16个Bit转换成一个Word),相信未来功能块库会进一步完善功能码 5)对于功能块FB500的发送区参数“Tx-Buffer“中DB区的格式已固定,只能为“Array [1 .. 121] of uint“,这主要是由功能块库开发者定死了无法更改 而接收区参数“Rx-Buffer“相对比较灵活,可以定义为“Array [1 .. x] of uint“、 “Array [1 .. x] of word“, “Array [1 .. x] of real“等格式,另外功能块库在版本上也进行了更新由V1.0->V1.2->V1.3->V1.4,对于V1.2的版本在CPU为V2.0之前(不包括V2.0)使用是OK的,但在V2.0中是有问题的功能块"PAC"FB500无法使用,所以建议当CPU固件升级到V2.0及以上时必须将使用V1.4版本的库文件,反之V1.4版本的快库在固件为2.0之前的CPU上也无法正常运行 6)另外关于通讯长度,根据Modbus/TCP本身的协议规范限制,寄存器最多不超过125个,而该功能块库也做了一定限制,对于读模式最多不超过125个寄存器。对于写模式不超过123个寄存器,另外通讯伙伴端可能也会对长度做一定的限制,比如PAC3200读写模式下均不超过122个寄存器,因此要综合双方来决定最终的长度. 如果连接多个MODBUS Server从站,需要建立多个连接,Connection_ID号要不同且不能超出S7-1200通信能力8个连接. 请参考下载中心文档资料: 基于S7-1200CPU集成PN 接口 Modbus TCP通讯快速入门 http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0500 V1.4版本的功能块库下载连接: http://support.automation.siemens.com/CN/view/en/40614428
来自西门子技术支持
|