cpu224xp做modbus主站接收从站数据(数据范围0-100000),如何选择寄存器及编程

从站设备发送的是16进制数值,换成十进制是从0-10万的范围,如果选择字存储VW0,最多只能放0-32767,如果选择双字存储,容量是够了,不过比如说原来接收的数值是0AF0,,,换成VD0后,同样的数值,寄存器存储的样式变成了0AF00000,这就造成了错误,请问各位老师如何解决??直接用高低位转换指令吗?谢谢

最佳答案

请参考链接下面《S7-200 作为 Modbus 主站方接收上来的数据格式与第三方设备不一样怎么办?》
西门子PLC数据的存储格式为高位低存方式。举例:VD200中包含VW200和VW202,其中VW202是低字,VW200是高字。若第三方设备与西门子数据存储格式不同,是低位低存的方式,那么通信上来的数据就会存在错误,需要进行转换才能使用。编程的方式比较多样。
例如,针对单个字中高低字节的交换可以使用SWAP(字节交换)指令,若是双字中高低字的交换可以考虑循环移位指令。
比如双字循环右移16位就可以了。
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-portal/MicroPower2013/s7-200/communication/modbus/modbus%20master/Modbus%20master.htm

提问者对于答案的评价:
你好,当接收数值为1时,寄存器VD50就变成了16#01000000,分开显示,VB50显示的是1,VB51显示的是0,如果采用循环移位指令,请问怎么编程呢?应该需要沿触发吧,我采用sm0.0后面加沿触发好像不起作用,我把从从站接收的数据处理放在了子程序,如果需要循环,不知如何编程了

最佳答案作者回复:
sm0.0后面不能加沿,它是长时间接通的。
可以引入一个中间变量,比如 VD204,将原变量 VD200循环右移的数据不断地存入VD204,这样就不用沿触发了。
另外移位后的数据是不是对高字、低字还要进行交换,你得再看一下。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 下午4:33
下一篇 2021年7月5日 下午4:34

相关推荐

  • PLC不发脉冲

    用S7-200PLC控制伺服,用向导生成的Q0.0发脉冲,在运行过程中出现PLC不发脉冲的现像,时间不固家,有时两个月左右才出现,有时个把星期就出现,必须要程序写入程序块、数据块和…

    SIMATIC S7-200 2017年11月1日
  • 关于整数运算的问题

    在PLC中怎样实现VD0中当前时间(t)的数据减掉前一时间(t-1)的数据. 最佳答案 假如VD0是输入的信号值,取一个VD4作为中间变量,VD8是相减得到的结果; 图片说明: &…

    2017年6月6日
  • S7-200与英文版系统通讯

    我的电脑用的是XP 英文版,在与S7-200通讯时无法连接,CPU是226 CN的,请问哪位高手知道手机怎么回事吗 最佳答案 英文操作系统要安装“东亚语言”,在…

    SIMATIC S7-200 2020年11月1日
  • 自由通信模式的简单应用

    请问 网站上的“自由通信模式的简单应用”的tip0005.zip(6.27KB) 例子是怎样调用啊??地址为:http://www.ad.siemens.com…

    SIMATIC S7-200 2020年11月1日
  • s7-200脉冲输出点

    请教:我用s7-200控制四个计量泵,计量泵靠脉冲控制,脉宽为20ms,但是200就只有q0.0和q0.1两个能输出脉冲信号,我应该怎么办??还有就是因为我需要的脉冲输出频率很低很…

    SIMATIC S7-200 2021年7月4日
  • 热电偶模块未用通道如何处理?

    是不是短接呀? 最佳答案 以上回答都不是最好的, 你仔细查阅S7-200系统手册,里面提到这个问题的确切处理方法,就是把未用的通道接上一个100欧的电阻,或者把断线检测关…

    SIMATIC S7-200 2021年7月5日
  • 恒压供水程序 PID

    200 SMART  加 AM03 加SMART 700 IEV3  用 4-2…

    SIMATIC S7-200 2021年7月5日
  • 请问这是什么模块 上面没标示 做什么用的 是不是em241

    内容如题目 可不可通过此模块以用micro/win访问200PLC 图片说明:    最佳答案 1.首先你这个模块肯定不是西门子CPU模块,有点像西门…

    2017年12月2日
  • USB驱动问题

    我在电脑上安装西门子的USB驱动的时候 显示无法安装 因为电脑已经有了V8.2更高的版本 可我的USB根本无法连接PLC  请问&…

    SIMATIC S7-200 2018年3月6日
  • 关于PID调节

    我现遇到一个问题,用的PT 100热电阻接入EM231 RTC模块,通过PID调节输出4-20mA去控制调节阀。问题是在向导中设置回路给定值是0-200,过程变…

    SIMATIC S7-200 2018年12月3日

发表回复

登录后才能评论