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

相关推荐

  • CPU224XP怎样同时有三个功能?

    我有一个CPU224XP,0#口用于modbus主站,1#口用于K-TP178micro,我又想在调试的时候监视CPU224XP的程序变量,请问有什么办法吗? 问题补充:我在CPU…

    SIMATIC S7-200 2021年7月4日
  • S7-200编程中,实数VD怎样转换成整数VW

    S7-200编程中,实数VD怎样转换成整数VW 最佳答案 引用:怎么把实数VD转化为整数VW?应用下述指令:1、将四舍五入存入指定的输出变量中;四舍五入取整指令:ROUND,将一个…

    SIMATIC S7-200 2020年11月1日
  • 寄存器区别

    请问:寄存器MW和VW寄存器有何区别?           &nbsp…

    SIMATIC S7-200 2021年7月5日
  • S7-200累加器

    S7-200中AC0和AC1有什么相同点和不同点,请教各位高手,谢了~ 最佳答案 相同点是: 1.它们是可以象存储器一样使用的读写设备; 2.可以用它来向子程序…

    SIMATIC S7-200 2021年7月5日
  • S7_200_PC_ACCESS_V1_SP5_SP6

    我把该软件卸载后 再安装 就安装不上了 一直报错误 哪位师傅知道怎么回事  又该如何装 图片说明:  &nbs…

    2017年6月24日
  • 三线制变送器同EM235接线

    各位大师:我用PT100热电阻接到SBWZ温度变送器上,其中PT100上红色的线接在了RI的一端,另外两根同颜色的线接在变送器的另两端(这两根线是挨着的,其中一根接在了RI的另一端…

    SIMATIC S7-200 2020年11月5日
  • IEC 1131-3 浮点运算不正常

    每秒一次 寄存器A+寄存器B=寄存器AIEC 1131-3模式,浮点运算不正常,溢出但是如果 SMITIC 模式 ,或者换成整数运…

    SIMATIC S7-200 2019年6月10日
  • 西门子200的以太网模块

    我根据向导配置了以太网模块,PING模块的IP地址也能拼通,可为什么通过以太网模块读不了程序??? 最佳答案 当配置完以太网向导后,在调用子程序中会找到向导生成的子程序,将其调用在…

    2017年8月15日
  • S7200组网问题

    想将约300台S7200 CPU226CN同上位工控机联在一起,请问能实现吗?若能,用什么方案?请详细说明 问题补充:请问有没有便宜的办法,因为台数较多,每台加一个模块,…

    SIMATIC S7-200 2021年7月5日
  • S7-200的SMB200至SMB549:智能模块状态是什么意思,怎么用

    经理给了一份程序是S7-200 224的程序,我看到有SMB424 SMW426等智能模块状态都是什么意思 问题补充:你打开200编程软件,在帮助按钮下就可以找…

    SIMATIC S7-200 2017年6月9日

发表回复

登录后才能评论