西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据

我手头上有一个西门子200以及一个使用modbus-rtu通讯协议的温湿度的传感器。然后我用485转USB把传感器接在电脑上,然后用串口助手发送询问桢,串口助手自动自动接收到应答桢,并且数据无误,然后把传感器与西门子串口连接起来,写程序进行读取,怎么也读不出来。总体疑问有以下几点:
1.经过初始化后,西门子的mbus_MSG程序有两个功能,一个是读一个是写,先说读功能,我如果直接读温湿度所在的寄存器,那么会一直显示错误3,即接受超时。
2.再来说写功能,我如果用写功能,那么我有三个疑惑的地方,我的询问桢是不是先得放在寄存器里,然后发送过去?
第二个疑惑的地方,我写的地址是不是文档里面给出的40001,如果不是,应该往哪里写?
第三个疑惑的地方,我的技术文件里面写着说,这是只读寄存器,那我怎么写进去?
第四个疑惑的地方,如果上面的全对,那我写进去了,他的应答桢放在哪里给我,我放询问桢的地方吗?
第五个疑惑的地方,我每次用写程序后,我原来放询问桢的寄存器的数据都会被改变,但是这些数据是固定的,就是不管我有没有连接传感器,只要执行了写程序,里面的都会被改变成固定值。

图片说明:

西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据    西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据    西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据    西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据    西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据    西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据    西门子200通过MODBUS-RTU协议与一个传感器通信,发现一直读不出数据   

最佳答案

从你的提问,以及你所附程序来看,你根本没有理解PLC的MBUS_MSG指令。使用这条指令实际上已经指明:地址码(slave),功能码(WR和Addr共同决定),起始地址Addr,字节数(2xcount个)。换句话说,就是PLC系统会自动把这些打包生成一个数据帧。而你编程时还去定义VB100=1(地址码),VB101=3(功能码)(你所附程序网络5/6)这是错误的。你真正要定义的是,你把什么数据发出去(以&VB**开始的2xcount个字节),或把接收到数据存储在哪里(以&VB**开始的2xcount个字节)。
接下来回答你的疑惑:
1、你的程序网络14中:写40001开始的4个字空间,这是错误的。40001只可读,无法写,可能你的传感器无法响应你的写请求。因此出现错误代码3也不奇怪。
2、根据你的附图:寄存器地址。你可写有40100(Modbus站地址),40101(通信速率).
疑惑一:询问帧(读)是不是先得放在寄存器里,然后发送过去?
回答:不需要。指令自动生成询问帧。参见我的最上面一段话的描述。
疑惑二:我写的地址是不是文档里面给出的40001,如果不是,应该往哪里写?
第三个:我的技术文件里面写着说,这是只读寄存器,那我怎么写进去?
第四个:如果上面的全对,那我写进去了,他的应答桢放在哪里给我,我放询问桢的地方吗?
回答:对40001进行写操作,这是错误的。
疑惑五:我每次用写程序后,我原来放询问桢的寄存器的数据都会被改变,但是这些数据是固定的,就是不管我有没有连接传感器,只要执行了写程序,里面的都会被改变成固定值。
回答:你的附图程序中,对40001进行了读操作,你定义的所谓“询问帧”的首地址给了真正的应答帧指明了存储的首地址。当然PLC会把接受的数据存在这个位置。数据改变是理所当然。

提问者对于答案的评价:

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

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午2:39
下一篇 2021年7月5日 下午2:39

相关推荐

  • 200plc开关量能直接带220V指示灯吗

    200plc开关量能直接带220V指示灯吗6ES7223-1PL22模块如果能接指示灯下面那个24v电源还用接不? 问题补充:数字量输出接AC220V指示灯,输入端有一个DC24V…

    2017年11月13日
  • S7-200PID给定值

    S7-200 PID回路控制中有两个输入量即给定值和过程变量.给定值是一个固定值(如压力或温度),过程变量为由压力或温度转换成的模拟信号(如4-20m),假设现做一个温度…

    SIMATIC S7-200 2021年7月5日
  • s7-200 pid关闭和停止

    我想设置三个档控制水温,参数使用一样还是每个档都要分别设置参数,如分别设置的话,怎么设置?PID不使用时怎么停止,使用时怎么打开?能否使用手自动触点 最佳答案 可以设置一样,也可以…

    SIMATIC S7-200 2021年7月5日
  • 关于s7-200的Modbus

    1)在子程序中调用更好,还是在主程序中调用更好2)通讯时间和扫描时间会冲突吗?3)子程序中对计时器有无限止? 最佳答案 主程序 提问者对于答案的评价:同感

    SIMATIC S7-200 2020年11月1日
  • STEP7编的一段温度采集程序 菜鸟想知道可不可行 VW0输出的值是什么类型的

    小弟在网上找了段温度采集程序 求大神给小弟解释下这段程序的意思 及VW0输出值是什么类型 图片说明:    最佳答案 VW0是整数型。程序的…

    2017年8月26日
  • s7 200 pid 设置问题

    我使用pid向导配置pid回路,启用了pv 高限报警.我要在程序中改变高限报警设置值,不知道要改变哪个变量,回路表中也没有,请您指教!! 最佳答案 在相应的符号表和数据块…

    SIMATIC S7-200 2021年7月5日
  • 模拟量转换库

    请问:S7-200模拟量转换库在哪里下载?谢谢! 最佳答案 我来补充一下吧,在S7-200中,单极性模拟量输入/输出信号的数值范围是 0 – 3200…

    2021年7月5日
  • s7-200与变频器通讯

    电脑上装了step7和PLCSIM,然后编写了7-200与变频器的通讯程序,但现在没有变频器,我怎样调试程序。 最佳答案 200 300差别是巨大的。 &nbs…

    SIMATIC S7-200 2021年7月5日
  • 为什么我的设置PG-PC接口 没有 PC-internal(local)这个通道

    没有找到啊 最佳答案 问题:为什么我的设置PG-PC接口 没有 PC-internal(local)这个通道楼主在注册表内检查下是否有如下信息:\HKEY_LO…

    SIMATIC S7-200 2018年12月14日
  • 测试

    测试测试 钻石用户推荐最佳答案 测得不错 提问者对于答案的评价:

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论