技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > MODBUS-RTU通讯问题

MODBUS-RTU通讯问题

刘玉蓉 发布于2014-09-28 17:19 19 0 标签:

MB_MASTER中DATA_PTR之DB如何定义,为何出现16#818C错误;如改为MW200则出现16#818B错误;请问错误在那里?

问题补充:
1.首先感谢左传及lee nd2009之协助,原16#818C或16#818B错误已解决;但新问题如下:连接外设仪表是一个PID温控器,FC03范围为0~138,用RS485直接电脑测试显示都没问题;经由S7-1200读不到资料,图片如附加3张,烦请再指正,谢谢!


图片说明: 1,MB_Master ONLINE   2,MB_master   3,MB_MASTER_DB   4,MB_DB  

佳答案

1、错误信息:818B   指向本地数据源/目标的指针无效: 大小不正确
             818C   DATA_PTR 的指针无效或 Blocked_Proc_Timeout 无效。必须是 DB(允许符号访问和直接访问)或 M 存储器。   
2、  MB_MASTER中DATA_PTR之DB如何定义?
   DATA_PTR 参数指向要写入或读取的 DB 或 M 地址。 如果使用数据块,则必须创建一个全局数据块为读写 Modbus 从站提供数据存储位置。
说明
DATA_PTR 数据块类型必须允许直接寻址
该数据块必须允许直接(绝对)寻址和符号寻址。 创建该数据块时,必须选择“标
准”(Standard) 访问属性。
    DATA_PTR 参数的数据块结构
● 这些数据类型对 Modbus 地址 30001 到 39999、40001 到 49999 和 400001 到
465536 的字读取有效,对 Modbus 地址 40001 到 49999 和 400001 到 465536 的字
写入也有效。
– WORD、UINT 或 INT 数据类型的标准数组
– 指定的 WORD、UINT 或 INT 结构,其中每个元素都具有唯一的名称和 16 位数据
类型。
– 指定的复杂结构,其中每个元素都具有唯一的名称以及 16 或 32 位数据类型。
● 用于 Modbus 地址 00001 到 09999 的位读取和写入和 10001 到 19999 的位读取。
– 布尔数据类型的标准数组。
– 具有唯一名称的布尔变量的指定布尔结构。

 3、你的错误之处在于:(1)MODE 和 Modbus 地址一起确定实际 Modbus 消息中使用的功能代码。根据你的程序选择的MODE 为0,Modbus地址是:1,两者确定的功能是:每个请求 ,读取输出位:1 到 1992 或 2000 个位
 (2)你在DATA_PTR程序输入MW200 ,显然数据的长度不能满足,它只有16位,而你读1-2000个位,所以出现16#818B错误。
  (3)你在DATA_PTR程序输入“MB_DB"块指针无效,可能的原因:A、数据长度不够,B、你引用的数据块没有选择必须选择“标准”(Standard) 访问属性。
   导致你程序出现的错误16#818C错误。
可以参考:《S71200的说明书》
https://www2.ad.siemens.com.cn/download/Upload/AS/manual/39710145[1].pdf
例子可以参考:《如何通过Modbus RTU协议实现S7-1200 与PAC3200的通信》
https://www2.ad.siemens.com.cn/download/Upload/AS/application/A0403.pdf

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签