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