1.BCD码
BCD(Binary-coded Decimal)是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数(见表5.2),每一位BCD码允许的数值范围为2#0000~2#1001,对应十进制数0~9。4位二进制数共有16种组合,有6种组合(2#1010~2#1111)没有在BCD码中使用。
表5.2 不同进制的数的表示方法
BCD码的最高位二进制数用来表示符号,负数为l,正数为0。一般令负数和正数的最高4位二进制数分别为1111和0000(见图5.8)。16位BCD码的范围为-999~+999,32位BCD码的范围为-9 999 999~+9 999 999(见图5.9),BCD码各位之间的关系是逢十进一。
图5.8 3位BCD码的格式
图5.9 7位BCD码的格式
拨码开关(见图5.10)内的圆盘的圆周面上有0~9这10个数字,用按钮来增、减各位要输入的数字。它用内部硬件将10个十进制数转换为4位二进制数。PLC用输入点读取的多位拨码开关的输出值就是BCD码,可以用数据转换指令CONV将它转换为二进制整数或双整数。
用PLC的4个输出点给译码驱动芯片4547提供输入信号,可以用LED七段显示器显示一位十进制数(见图5.11)。需要使用数据转换指令CONV,将PLC中的二进制整数或双整数转换为BCD码,然后分别送给各个译码驱动芯片。
图5.10 拨码开关
(www.xing528.com)
图5.11 LED七段显示器电路
2.EN与ENO
在梯形图中,用方框表示某些指令、功能(FC)和功能块(FB),输入信号均在方框的左边,输出信号均在方框的右边。梯形图中有一条提供“能流”的左侧垂直母线,图5.12中I0.0的常开触点接通时,能流流到方框指令CONV的使能输入端EN(Enable input),“使能”有允许的意思。使能输入端有能流时,方框指令才能执行。
如果方框指令的 EN 端有能流流入,而且执行时无错误,则使能输出ENO(Enable Output)端将能流传递给下一个元件[见图5.12(a)];如果执行过程中有错误,能流在出现错误的方框指令终止[见图5.12(b)]。
图5.12 EN与ENO
如图5.12所示的方框指令CONV是数据转换指令。将指令列表中的CONV指令拖放到梯形图中时,CONV下面的“to”两边分别有3个红色的问号[见图5.13(b)的指令],用来设置转换前后的数据的数据类型。点击“to”前面或后面的问号,再点击问号右边出现的▼按钮,用下拉式列表设置转换前的数据的数据类型为16位BCD码(Bcdl6),转换后的数据的数据类型为Int(有符号整数)。
在 RUN 模式用程序状态监控功能监视程序的运行情况。用监视表设置转换前MW12的值为16#F938[见图5.12(a)],最高位的“F”对应于2#1111,表示负数。转换后的十进制数为-938,因为程序执行成功,有能流从ENO输出端流出。指令框和ENO输出线均为绿色的连续线。
也可以用鼠标右键点击图5.12中的MW12,执行出现的快捷菜单中的“修改→修改值”命令,在出现的“修改”对话框中设置变量的值。点击“确认”按钮确认。
设置转换前的数值为16#9D8[见图5.12(b)],BCD码每一位的有效数字为0~9,16#D是非法的数字,因此程序执行出错,没有能流从ENO流出,指令框和ENO输出线均为蓝色的虚线。如果ENO端未接后续元件,指令框和ENO输出线均为蓝色的虚线。
ENO可以作为下一个方框的EN输入,即几个方框可以串联,只有前一个方框被正确执行时,与它连接的后面的程序才能被执行。EN和ENO的操作数均为能流,数据类型为Bool(布尔)型。可以在指令的在线帮助中找到使ENO为0状态的原因。
下列指令使用EN/ENO:数学运算指令、传送与转换指令、移位与循环指令、字逻辑运算指令等。
下列指令不使用EN/ENO:位逻辑指令、比较指令、计数器指令、定时器指令和程序控制指令。这些指令不会在执行时山现需要程序中止的错误,因此不需要使用EN/ENO。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。