西门子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日
下一篇 2021年7月5日

相关推荐

  • 200中的for-next指令在循环中怎么中断退出循环?

    200中的for-next指令在循环中怎么中断退出循环?比如我设置循环100次,但是中间我要结束循环了,就是退出循环,应该怎么弄啊?谢谢! 最佳答案 如下面的例子,断开I2.0&n…

    SIMATIC S7-200 2020年11月1日
  • s7-200cpu无法下载

    s7-200系列的224cpu无法下载,我上载一次之后就无法在连接上,不知道是点到什么地方了,电脑、通讯线和PCPG设置我常用不会有错,多次测试还是连接不上,通讯设置总是提示地址不…

    SIMATIC S7-200 2020年10月31日
  • 求高人指点,关于S7-200引入队列的程序

    1.电流源模拟量不断输入PLC,模拟量转换为数字量(这步不知道可不可以不要)2.引入队列,每过1s读取模拟量,并把这个值放入队列的一个栈中。1s后,这个值又进入队列的下一个栈,以此…

    SIMATIC S7-200 2020年10月31日
  • 如何将流量计5v的高速脉冲接入s7 200

    流量计输出的高速脉冲是5v的,要怎么接入s7 226cn呢 最佳答案 可以直接接入,但要选S7-200 224XP或S7-200 224XP&nbsp…

    SIMATIC S7-200 2020年11月1日
  • 那里可以下S5编程软件

    那里可以下S5编程软件,邮箱,renbijiang2@126.com,谢谢 最佳答案 同类问题参见:https://www.ad.siemens.com.cn/service/an…

    SIMATIC S7-200 2021年7月5日
  • 组态王数据输入问题

    组态王数据词典V100,实型,模拟输入/输出,小数点2位。如输入200为何监控里显示不是200.00而是200.32或其他也就是小数点以后不是00? 最佳答案 在S7-200PLC…

    SIMATIC S7-200 2021年7月5日
  • S7-200 PPI通讯

    S7-200与S7-200PPI通讯,在指令向导中已经完成,但是在运行中ERROR 始终为1,求救 问题补充:附图 图片说明:    最佳答案 您可以…

    2017年11月17日
  • s7-200与多个电力仪表MODBUS通讯

    s7-200与多个电力仪表modbus通讯,怎样建立轮询通讯,兄弟们指导下,最好有实例参考,谢谢,dong_180@126.com 问题补充:《S7-200基于MODBUS协议与智…

    SIMATIC S7-200 2020年11月1日
  • PLC连接CAN总线

    我现在搞了一个CAN485转换器,想通过CAN来读取别的设备的信息,现在要怎么做程序?读到的程序又在哪里可以监控到?CPU224XP 问题补充:使用224的串口就行,通过自由通讯协…

    SIMATIC S7-200 2020年11月1日
  • cp243-1连接问题

    请问:S7-200的cp243-1模块直接和电脑网卡连接的时候,网线是直通还是交叉呢,如果CP243-1和交换机连接,然后交换机和电脑网卡连接呢,CP243-1和交换机之间连接线是…

    SIMATIC S7-200 2020年10月31日

发表回复

登录后才能评论