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日

相关推荐

  • pm125与plc1200通信如何实现

    pm125在组态中设置I/O点,1200如何实现数据通信。如将数据长度N赋予某个QBx。原理是什么? 最佳答案 PM125使用手册(里面有详细介绍)http://wenku.bai…

    SIMATIC S7-1200 2017年6月24日
  • 博途软件报错未找到许可密钥

    打开博途软件组态的时候选择控制器的时候,出现下图的报错,未找到许可的密钥。请指教,之前不会出现这样的情况。是不是我不小心删除了什么文件导致?另外我打开之前在我的电脑上面写的程序,打…

    2017年6月12日
  • 1200软件汉化不了

    1200软件汉化不了 我的原始软件 以及SP2升级也下了 都安装了  上次按别人的建议安装 还是汉化不了啊 骗…

    SIMATIC S7-1200 2017年11月19日
  • 刚学的,请问s7-1200编程有多难?

    各位老师好!要想学会用S7-1200编程,做好运动控制和PID温度控制,变频器等编程需要多长时间,提示以前会一点S7200.谢谢! 最佳答案 要想学会用S7-1200编程,做好运动…

    SIMATIC S7-1200 2017年11月12日
  • 1200模拟量模块问题

    1200系列,cpu1214C :6ES7214-1BG40-0XB0      模拟量模块:6ES7231-…

    2017年7月26日
  • s7-1200硬件组态问题

    在plc硬件组态里面高速计数器输入地址中有默认的组织块自动更新和过程印象自动更新,这个怎么选择,下拉框里面还有其他选择,都是什么意思?我看了看其他的,像输入输出点还有模拟量输入都有…

    2017年6月8日
  • S7-1200高速计数器,高频率时计数器丢失频率脉冲

    S7-1200高速计数器,高频率时计数器丢失频率脉冲 最佳答案 1 是不是超过CPU允许的最高频率,超过的话需要换CPU2 是不是输入滤波时间较长导致,降低输入…

    SIMATIC S7-1200 2017年6月13日
  • 1200有没有堆栈指令,都有哪些系统功能块SFB

    1200有没有堆栈指令?自己做的话,怎样的方式占用CPU资源少?系统功能SF,系统功能块SFB,在哪里看?有没有第三方做的库(不限于堆栈)? 最佳答案 谁说1200不可以连续复制或…

    SIMATIC S7-1200 2017年6月24日
  • TM_MAIL块使用方法

    我想用TM_MAIL块给我的163邮箱发邮件。REQ脚有上升沿后,BUSY脚先变1,再变0,DONE脚一直未变1。STATUS端的值是16#8014。ADDR_MAIL_SERVE…

    2017年6月1日
  • 硬件中断的上升沿触发方式

    硬件中断的上升沿触发方式对上升沿有何要求?比如说高电平的幅值、上升沿的倾斜度等等。因为我用上升沿触发进入中断,但是有时能进入中断,但有时进不去。这是为什么? 最佳答案 上升沿高电平…

    SIMATIC S7-1200 2017年6月11日