S7 200转换指令 ATH 和BCD_I

指令ATH 和BCD_I如输入 LD SM0.0
                                           ATH  VW501 VW601  1
                                           MOVW VW601 VW701
                                            BCD_I   VW701
 假如 VB501=16#31(ASCII码‘1’) 监控中 VB601=16#10 ,为何VB601不等于‘31’?它们是对应的啊?
 VW601=16#1000 BCD-I 后,监控VW701=1000 ,为何不是4096?

最佳答案

看到你这个问题时,开始也点和你一样迷惑,但仔细一看才知道为什么!首先我们来看第一个问题:
 1. LD SM0.0
    ATH VB501 ,VB601,1(ATH的IN和OUT只支持VB数据)
  如: VB501=16#31 对应的字符是“1”,ASCII是“49”(ASCII码不是“1”).执行ATH后,VB601=16#10,对应二进制编码是“2#0001_0000”,因为一个VB分成两个半分字节,也就是16#10分成了一个半字为“1”,另一个半字节“0”,从二进制编码也可以看出,用“_”分界成两个半字节,而一个字符ATH转换后只占半个字节,ASCII对应的字母数字字符“1”就占用VB601的上半字节,而下半字节没有什么字符,保持原数据不变,所以为“0”,从而组成了“16#10”。假如我们改一下程序,
 LD SM0.0
 ATH VB501, VB601,2
 然后分使VB501=16#31,VB502=16#32 ,则在VB601肯定是16#12.这个在ATH的指令说明中有,可以仔细看看!
 2. LD     SM0.0
     MOVW   VW700, VW702
     BCDI   VW702
    BCD至整数指令将二进制编码的十进制值IN转换成整数值,并将结果载入OUT指定的变量中。IN的有效范围是0至9999 BCD。BCD(二进制编码)的十进制值表示方式是:0000:0;0001:1;0010:2;0011:3;0100:4;0101:5;0110:6;0111:7;1000:8;1001:9;(1010:A;1011:B;1100:C;1101:D;1110:E;1111:F);1 0000:10;以此类对,其中ABCDEF是十六进制,十进制值不用。假如:VW700=16#1000,则对应的十进制值是4096,对应的二进制编码是“2#0001_0000_0000_0000”,如果你用以上BCD(二进制编码)的十进制值表示方式,就很容易知道VW702就是1000。

 
 

提问者对于答案的评价:
明白!不胜感激!

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

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

相关推荐

  • EM231模块和EM232模块一些问题

    我这边有个项目需要用到200的一些模块,有些不懂的求指点指点!首先需要用到EM231模拟量输入模块,主要是用来采集PT100的温度,我想问下PT100应该选用温度变送吗?231的接…

    SIMATIC S7-200 2018年1月1日
  • 高速计数值如何显示

    我用S7-200做的高速计数,用时间中断,发现HC0输出值是变化很快的定量,如何让它变为定值在触摸屏上显示。请指教。 最佳答案 何谓高速?比扫描速度还快! 每个扫描周期读…

    SIMATIC S7-200 2021年7月5日
  • 求:Smart200 PLC的编程软件

    大家好,有Step7-Micro/Win Smart 的编程软件吗?分享一下,最好是解压版的 最佳答案 最新版软件:STEP7-MicroWIN-SMART-V…

    2021年7月5日
  • 看不到编码器的当前脉冲数?

    本人用226PLC向导做一个计数程序HC0,编码器为OMRON的E6B2CWZ6C。编码器的两根电源线接PLC的输出24电源其1M接电源正极,A/B相分别接I0.0/I0.1运行时…

    SIMATIC S7-200 2017年6月29日
  • 求教:一台SMART SR20,多台cpu222,通过什么方法与组态王通讯呢

    向师傅们请教个问题:目前公司有8台CPU222(有台CPU连了两个模块已经,且端口连了一块触屏),一台SMART sr20,有六台大概相距有700米,3台相距大概200米…

    SIMATIC S7-200 2017年11月17日
  • S7-200Modbus主站指令

    S7-200modbus主站指令中MBUS_CTRL指令中的参数Timeout,是设定等待从站响应的时间。如果从站在该时间范围内完成响应,那该时间对整个程序运行,比如扫描周期,就没…

    SIMATIC S7-200 2021年7月5日
  • PLC的I/O点数怎么算

    PLC的I/O点数怎么算 最佳答案 看你实际工程使用量来算,一般的用224基本差不多了。如果需要模拟量,则可以考虑224XP。如果程序较大且I/O数量较多,推荐使用226。CPU的…

    SIMATIC S7-200 2020年10月31日
  • S200CUP224XP 的4个输入端一上电就接通是什么原回因?

    S200CUP224XP 的4个输入端一上电就接通是什么原回因? 问题补充:我没有接输入线,所有强制也取消,还是那样,不管上什么程序都一样啊,会不会是坏了 最佳答案 把这…

    SIMATIC S7-200 2020年10月31日
  • 程序块存储区间V区

    PID向导、以太网向导等编辑过程中,最后一步是为配置分配存储区,或使用建议地址,或手动输入一个地址区间,如图。我想问问,这一个上百字节的区间里每个字节或者字的含义能否查询到? 问题…

    2017年11月19日
  • 长时间定时器

    S7-200的长时间定时器如何做到,如几个月或一年……….. 最佳答案 LD     SM0.5 EU&nb…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论