PLC200的MODBUS通讯啊,继续啊 点击:6316 | 回复:19



jlw8558868

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 5回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2012年4月25日
发表于:2012-12-30 20:31:17
楼主
求助帖10分-已结帖
我用plc200与空压机通讯,一直出现错误3,是咋回事呢?难道是我地址接错了?还是我线接错了?就是A接到B了?他的地址有的是1000,1001这样的四位数,有的是13000的五位数,我在程序里面写的就是401001,401002,413001这样的但一直读不出数据,一直显示是3号错误,超时未响应,我超时设置的是800ms,应该够了吧。还有就是我是轮询的读取,就是比如11号从站,我读一段寄存器,然后使能下一个读功能读11号从站的其他寄存器,一次类推,但不知道为什么读出的数据都是0.在状态里面监测发现error处的数据也是有时候是3,有时候是0,但不管是多少,数据都是0,我郁闷啊,急死我了,搞了半天了。我读取的地址是放到&vb300,然后试用BLKMOV VB300,VB500。这样做对么?



watermelon123

  • 精华:0帖
  • 求助:9帖
  • 帖子:43帖 | 355回
  • 年度积分:2436
  • 历史总积分:14555
  • 注册:2011年9月09日
发表于:2012-12-30 20:54:39
1楼

你的地址应该是41001 41002 413001  然后你读回来的数据应该在vb302里面 你自己在线监控看看就知道了。

jlw8558868

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 5回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2012年4月25日
发表于:2012-12-30 20:58:22
2楼
回复内容:
对:watermelon123关于你的地址应该是41001 41002 413001  然后你读回来的数据应该在vb302里面 你自己在线监控看看就知道了。内容的回复:


为什么不是在300里面呢?300里面难道放的是我读了多少个数据?真正的数据应该是在302开始的?我现在监控的时候是发现全是0

阿水--王者之师

  • 精华:23帖
  • 求助:347帖
  • 帖子:1611帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2012-12-30 21:40:39
3楼
200 的 MODBUS 是不是通讯没有做对呀 /.? 空压机 与  PLC 端口通讯正常不?

岳轻航

  • 精华:0帖
  • 求助:3帖
  • 帖子:20帖 | 1090回
  • 年度积分:5
  • 历史总积分:3153
  • 注册:2010年8月04日
发表于:2012-12-30 22:31:11
4楼

占楼学习了,没有搞过MODBUS通讯

 

小鹰_56

  • 精华:0帖
  • 求助:3帖
  • 帖子:9帖 | 782回
  • 年度积分:0
  • 历史总积分:2918
  • 注册:2009年8月10日
发表于:2012-12-30 22:45:28
5楼
期待解决方案       

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2012-12-30 23:11:49
6楼

错误3的含义是接收超时(从站无响应)

 

  • 从站 delay 参数设的时间过长会造成主站 3 号错误
  • 从站掉电或不运行,网络故障都会造成主站 3 号错误
  • yjig

    • 精华:2帖
    • 求助:5帖
    • 帖子:97帖 | 5237回
    • 年度积分:0
    • 历史总积分:12514
    • 注册:2004年6月04日
    发表于:2012-12-31 00:00:30
    7楼
    你尝试以下将1000H对应为44097

    bbi3014

    • 精华:0帖
    • 求助:1帖
    • 帖子:1帖 | 25回
    • 年度积分:0
    • 历史总积分:315
    • 注册:2009年12月20日
    发表于:2012-12-31 08:17:01
    8楼

    03 错误为   非法数据值 对于服务器(或从站)来说,询问中包括的值是不可允许的值。

           这个值指示了组合请求剩余结构中的故障,例如:隐含长度是不正确的。

           并不意味着,因为MODBUS协议不知道任何特殊寄存器的任何特殊值的重要意义,寄存器中被提交存储的数据项有一个应用程序期望之外的值。

    楼上说的是对的,1000H可能是十六进制的地址,转换为十进制的地址是44096,如果地址是,1开始,则需要加1,即为:44097!

    天涯落客

    • 精华:0帖
    • 求助:0帖
    • 帖子:5帖 | 246回
    • 年度积分:0
    • 历史总积分:1945
    • 注册:2012年11月22日
    发表于:2012-12-31 08:26:30
    9楼
    引用 bbi3014 的回复内容:03 错误为   非法数据值 对于服务器(或从站)来说,询问中包括的值是不可允许的值。       这个值指示了组合请求剩余结构中的故障,例如:隐含长度是不正确的。       并不意味着,因为MODBUS协议不知道任何特殊寄存器的任何特殊值的重要意义,寄存器中被提交存储的数据项有一个应用程序期望之外的值。楼上说的是对的,1000H可能是十六进制的地址,转换为十进制的地址是44096,如果地址是,1开始,则需要加1,即为:44097!



    字字实在

    • 精华:5帖
    • 求助:12帖
    • 帖子:219帖 | 1207回
    • 年度积分:0
    • 历史总积分:0
    • 注册:1900年1月01日
    发表于:2012-12-31 09:21:54
    10楼

    PLC和空压机通讯?难道是PLC和变频器的MODBUS通讯方式吗?

    miy_gongkong

    • 精华:0帖
    • 求助:2帖
    • 帖子:23帖 | 3065回
    • 年度积分:0
    • 历史总积分:12421
    • 注册:2008年9月18日
    发表于:2012-12-31 09:31:13
    11楼
    引用 watermelon123 的回复内容:你的地址应该是41001 41002 413001  然后你读回来的数据应该在vb302里面 你自己在线监控看看就知道了。



    lzgz00

    • 精华:0帖
    • 求助:0帖
    • 帖子:445帖 | 1223回
    • 年度积分:0
    • 历史总积分:4892
    • 注册:2008年9月02日
    发表于:2012-12-31 09:47:33
    12楼
    引用 watermelon123 的回复内容:你的地址应该是41001 41002 413001  然后你读回来的数据应该在vb302里面 你自己在线监控看看就知道了。



    王者之师--感叹号

    • 精华:0帖
    • 求助:0帖
    • 帖子:0帖 | 500回
    • 年度积分:0
    • 历史总积分:2229
    • 注册:2009年1月03日
    发表于:2012-12-31 11:24:15
    13楼
    引用 yjig 的回复内容:你尝试以下将1000H对应为44097



    正解

    大话东游

    • 精华:2帖
    • 求助:6帖
    • 帖子:39帖 | 1815回
    • 年度积分:7
    • 历史总积分:8251
    • 注册:2008年12月19日
    发表于:2013-01-01 11:12:04
    14楼

    MODBUS从站地址取决于从站,而不是主站,ABB的变频器作为modbus从站时,地址已经说得很清楚,任何一个参数都可以在前边加4,作为绝对地址来寻址,国产的变频器就不是了,就像yjig说得那样转换一下才行,西门子200的plc-MODBUS主站错误显示代表如下:

    0 无错

    1 奇偶校验选择无

    2 波特率选择无效

    3 超时选择无效

    4 模式选择无效

    在发送命令后返回的错误消息中,各种错误消息如下:

    注:错误代码 描述

    0 无错

    1 响应中的奇偶校验错误:只有在使用偶校验或奇校验时才可能发生此类错误。传输受

    到干扰,可能接收错误的数据。该错误通常由电气故障引起,例如接线错误或影响通

    讯的电气噪声。

    2 不用

    3 接收超时:在Timeout时间内没有来自从站的响应。一些可能的原因是到从站设备的电

    气连接不良,主站和从站设为一种不同的波特率/奇偶校验设置以及错误的从站地址。

    4 请求参数出错:一个或多个输入参数(SlaveRWAddrCount)被设为非法数值。查

    看输入参数允许数值的文档。

    5 Modbus主站未启用:在每次扫描时在调用MBUS_MSG之前调用MBUS_CTRL

    6 Modbus正忙于处理另一个请求:一次只有一个MBUS_MSG指令处于活动状态。

    7 响应出错:所接收的响应与请求不一致。这表示从站设备出现某些故障或错误的从站

    设备对请求进行了响应。

    8 响应中的CRC错误:传输受到干扰,可能接收到错误的数据。该错误通常由电气故障

    引起,例如接线错误或影响通讯的电气噪声。

    101 从站不支持该地址的请求功能:请参见“使用Modbus主站指令”帮助主题中的所要求

    Modbus从站功能支持表。

    102 从站不支持数据地址:AddrCount所请求的地址范围超出从站的允许地址范围。

    103 从站不支持数据类型:从站设备不支持Addr类型。

    104 从站设备故障。

    105 从站接受消息,但响应被延迟:这是MBUS_MSG错误,用户程序应稍后重新发送

    请求。

    106 从站接受消息,但响应被延迟:这是MBUS_MSG错误,用户程序应稍后重新发送请

    求。从站忙碌,拒绝消息:可以重新尝试同一个请求来获取响应。

    107 由于某种未知原因,从站拒绝消息

    108 从站存储器奇偶校验错误:从站设备出错。

    楼主根据这个自己判断一下吧!

    老愚者

    • 精华:1帖
    • 求助:0帖
    • 帖子:9帖 | 2253回
    • 年度积分:0
    • 历史总积分:10007
    • 注册:2006年8月20日
    发表于:2013-01-01 14:29:51
    15楼

    国产的带MODBUS设备, 绝大多数采用十六进制的MODBU数据地址,并且从0起算.

    S7-200的MODBUS数据地址采用标准的十进制地址,并且数据地址是从1起算.

    楼主应该咨询空压机厂家有关数据的类型和地址使用什么进制. 注意相差"1".

    纵横军团-棋影

    • [版主]
    • 精华:5帖
    • 求助:21帖
    • 帖子:728帖 | 5626回
    • 年度积分:78
    • 历史总积分:82244
    • 注册:2004年5月28日
    发表于:2013-01-09 09:35:51
    16楼
    悬赏分数太低,不值得我动手帮

    lipeiyuan789

    • 精华:0帖
    • 求助:0帖
    • 帖子:0帖 | 4回
    • 年度积分:0
    • 历史总积分:14
    • 注册:2013年1月08日
    发表于:2013-01-11 14:48:01
    17楼
    学习中,我想应该是线路或端口问题,导致无法接收回传信息

    qinghua521521

    • 精华:0帖
    • 求助:0帖
    • 帖子:2帖 | 42回
    • 年度积分:98
    • 历史总积分:329
    • 注册:2017年5月05日
    发表于:2018-08-06 20:17:46
    18楼

    我是菜鸟来学习的。

    luohuayang

    • 精华:0帖
    • 求助:0帖
    • 帖子:2帖 | 14回
    • 年度积分:0
    • 历史总积分:83
    • 注册:2009年6月27日
    发表于:2018-10-22 01:52:36
    19楼

    你如果只读数据,通常在保持寄存器前加4,如果需要读写那么一版加3.


    
    热门招聘
    相关主题

    官方公众号

    智造工程师