西门子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

相关推荐

  • V20变频器与S7-200PLC通讯

    按步骤设置但是一直通讯不上  故障码为1   驱动未响应 钻石用户推荐最佳答案 是USS 还是MODBUS R…

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

    系统是3台s7-226PLC通讯,采用PPI协议,只设置一个主站,通讯速度比较慢,一边按下后,另一边需要大概2S左右才能反映过来。请问是怎么回事? 问题补充:我是用向导设置的,如果…

    SIMATIC S7-200 2017年6月11日
  • 西门子200控制伺服的程序帮我看下,程序是不是有问题。

    新手上路,程序也不知道怎么上传,好想弄懂啊,好难受的感觉,,,,卡在喉咙这里!你们谁给我留个邮箱我发给大侠看看,,,行么。 最佳答案 楼主可以截图,或者在技术论坛中和网友讨论,可以…

    SIMATIC S7-200 2017年6月10日
  • 使用Step7-MicroWin连接S7-200时,软件闪退问题

    小弟由于资金有限,购买了一条国产USB-PPI编程线,连接一个224下载程序时,软件闪退了,就是直接退出了,请问是什么原因?这条数据线在其他200上监控过,可以使用。 最佳答案 如…

    2017年11月13日
  • cpu226输出问题

    我用CPU226做汽车电子控制系统,最大的灯是12V52W的,想用中间继电器连接,我用220V给PLC供电,那输出电压是多少呢?请问可以用什么型号的中间继电器呢? 最佳答案 这个要…

    SIMATIC S7-200 2017年12月9日
  • 什么是积分项前值

    在PID积分项公式里参数MX手册上称之为积分项和(所有积分项)前值之和,请那位大侠给指点一下这句话的具体含义? 问题补充:积分项在PID里面具体的作用是什么?请给解释一下 最佳答案…

    SIMATIC S7-200 2021年7月5日
  • PLC 200 smart怎么控制伺服控制器?

    smart的程序怎么写?第一次,不知怎么做。请详细说明。包括向导怎么设。 最佳答案 两根线,方向和脉冲。给你两个办法一个是官网案例http://www.ad.siemens.com…

    SIMATIC S7-200 2021年7月5日
  • 求P1口初始化程序

    P0口烧了,现在想用P1口做从站,但200指令库中只有P0的口初始化程序MBUS_INIT程序,并无P1口的初始化程序,哪位大侠有P1口的modbus初始化程序,发一下给我,感激不…

    SIMATIC S7-200 2017年12月1日
  • 求助,库存储区已经已经分配了,编译时显示未为库分配存储区,咋办?

    库存储区已经已经分配了,编译时显示未为库分配存储区,咋办? 问题补充:s7-200cn  cpu222cn 最佳答案 你看你的plc类型支持相应通讯吗?不支持即…

    SIMATIC S7-200 2021年7月5日
  • 关于4-20ma信号接两路plc的问题

    一个改造项目,原系统是s7-200系统,其中有一压力表4-20ma进入EM235,现在我改造的项目单独建立一个系统,还要采集这个压力4-20ma进入远程模块,但是压力表4-20ma…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论