MODBUS-RTU通讯问题

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张,烦请再指正,谢谢!

图片说明:

MODBUS-RTU通讯问题    MODBUS-RTU通讯问题    MODBUS-RTU通讯问题    MODBUS-RTU通讯问题   

最佳答案

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的说明书》
http://www2.ad.siemens.com.cn/download/Upload/AS/manual/39710145[1].pdf
例子可以参考:《如何通过Modbus RTU协议实现S7-1200 与PAC3200的通信》
http://www2.ad.siemens.com.cn/download/Upload/AS/application/A0403.pdf

提问者对于答案的评价:
前段问题解决,后段与现场仪表连线无法读取资料很遗憾,在努力寻找原因。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc212647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月16日
下一篇 2017年11月16日

相关推荐

  • 我的SCL程序为什么无法执行呢

    我的SCL程序为什么无法执行呢输入赋值输出没有值 不知道为什么 图片说明:       最佳答案 试了下明白了,你的变量用的全局的…

    2017年6月5日
  • i-device可以编程使其断开和连接吗?

    i-device可以编程使其断开和连接吗?应该使用什么指令? 最佳答案 TIA V13 中貌似没有标准基本指令,但是网上有个这么一个案例可以参考,也是符合你的需…

    SIMATIC S7-1200 2017年6月24日
  • S7-1200加一个信号板

    请问大家S7-1200PLC型号为6ES7 214-1HG31-0XB0加上一个型号为6ES7 222-1BD30-0XB0信号板后,是不是可以直接控制支持带2…

    2017年10月31日
  • 上载组态信息的问题

    用Portal V11新建了一个项目,然后把一个1200的CPU用网线连到电脑上,在线找到设备了,现在我想把里面原有的组态和程序上载上来,怎么那个上载的按钮始终是灰的呢?…

    SIMATIC S7-1200 2017年11月13日
  • 1200与1200通讯

    各位大师好!请问一下: 1.1200与1200通讯是否推荐用TSEND_C和TRCV_C ? 2. TSEND和TSEND_C的区别在哪里?…

    SIMATIC S7-1200 2017年6月4日
  • TIA portal v11

    我使用的v11软件,DB块为什么不能自动添加偏离量呢? 最佳答案 编译一下就可以看到了,在V11中必须编译才可以看到。 提问者对于答案的评价:在你回答之前,我已经摆弄明白了。不过同…

    SIMATIC S7-1200 2017年11月18日
  • S120选型,CU310,CU320,CUA32,选型后需要和S7-1200通讯

    用一个S120伺服系统和S7-1200通讯,现在在选S120的各个模块。首先电机伺服模块,现在用1.5KW的伺服电机(电机型号未定,在选择),我在纠结选什么模块和电机配合,而且,我…

    SIMATIC S7-1200 2017年6月24日
  • 绝对编码器位置值清零

    S120在MDI模式下运行,由于电机单方向运行,为防止达到最大值后归零,如何通过程序将编码器位置值提前清零? 问题补充:S120内置单圈绝对编码器,有相应介绍编码器资料吗? 最佳答…

    SIMATIC S7-1200 2017年6月1日
  • S7-1200最大支持几个MODBUS TCP从站?

    我用1214C作为主站,通过MODBUS TCP协议读写从站仪表,最多能读几个? 问题补充:最多能读写几个仪表? 最佳答案 不是主、从关系,应该是服务器还是客户端的关系。…

    SIMATIC S7-1200 2017年6月24日
  • 容器液体进出量统计。

    通过液位计测量液位升降算出液体进出量。并且统计每日的进出量。供以后查询,请问如何做程序?上位机是wincc。 问题补充:进液阀门开启信号开始统计进液量,排液阀门开启信号统计排液量。…

    SIMATIC S7-1200 2017年8月18日