外部i/0设备指令是fx系列与外设传递信息的指令,共有10条。分别是10键输入指令tky(fnc70)、16键输入指令hky(fnc71)、数字开关输入指令dsw(fnc72)、七段译码指令segd(fnc73)、带锁存的七段显示指令segl(fnc74)、方向开关指令arws(fnc75)、ascii码转换指令asc(fnc76)、ascii打印指令pr(fnc77)、特殊功能模块读指令from(fnc78)和特殊功能模块写指令t0(fnc79)。
1、数据输入指令
10键输入指令tky
16键输入指令hky
数字开关输入指令dsw
数据输入指令有10键输入指令tky(fnc70)、16键输入指令hky(fnc71)和数字开关输入指令dsw(fnc72)。
10键输入指令(d)tky的使用如图1所示。源操作数[s.]用x0为首元件,10个键x0~x11分别为对应数字0~9。x30接通时执行tky指令,如果以x2(2)、x9(8)、x3(3)、x0(0)的顺序按键,则[d1.]中存入数据为2830,实现了将按键变成十进制的数字量。当送入的数大于9999,则高位溢出并丢失。使用32位指令dtky时,d1和d2组合使用,高位大于99999999则高位溢出。
图1 10键输入指令的使用
当按下x2后,m12置1并保持至另一键被按下,其它键也一样。m10~m19动作对应于x0~x11。任一键按下,键信号置1直到该键放开。当两个或更多的键被按下时,则首先按下的键有效。x30变为off时,d0中的
数据保持不变,但m10~m20全部为off。此指令的源操作数可取x、y、m、和s,目标操作数[d.]可取kny、knm、kns、t、c、d、v和z,[d2.]可取y、m、s。16位运算占7个程序步,32运算时占13个程序步。该
指令在程序中只能使用一次。
16键输入指令(d)hky的作用是通过对键盘上的数字键和功能键输入的内容实现输入的复合运算。如图2所示,[s.]指定4个输入元件,[d1.]指定4个扫描输出点,[d2.]为键输入的存储元件。[d3.]指示读出元件。十六键中0~9为数字键,a~f为功能键,hky指令输入的数字范围为0~9999,以二进制的方式存放在d0中,如果大于9999则溢出。dhky指令可在d0和d1中存放最大为99999999的数据。功能键a~f与m0~m5对应,按下a键,m0置1并保持。按下d键m0置0,m3置1并保持。其余类推。如果同时按下多个键则先按下的有效。
图2 16键输入指令的使用
该指令源操作数为x,目标操作数[d1.]为y。[d2]可以取t、c、d、v和z,[d3.]可取y、m和s。16位运算时占9个程序步,32位运算时为占17个程序步。扫描全部16键需8个扫描周期。hky指令在程序中只能使用一次。
数字开关指令dsw的功能是读入1组或2组4位数字开关的设置值。如图3所示,源操作数[s]为x,用来指定输入点。[d1]为目标操作数为y,用来指定选通点。[d2]指定数据存储单元,它可取t、c、d、v和z。[n]指定数字开关组数。该指令只有16位运算,占9个程序步,可使用两次。图中,n=1指有1组bcd码数字开关。输入开关为x10~x13,按y10~y13的顺序选通读入。数据以二进制数的形式存放在d0中。若n=2,则有2组开关,第2组开关接到x14~x17上,仍由y10~y13顺序选通读入,数据以二进制的形式存放在d1中,第2组数据只有在n=2时才有效。当x1保持为on时,y10~y13依次为on。一个周期完成后标志位m8029置1。
图3 数字开关指令的使用
2、数字译码输出指令
七段译码指令segd
带锁存的七段显示指令segl
数字译码输出指令有七段译码指令segd(fnc73)和带锁存的七段显示指令segl(fnc74)两条。
七段译码指令segd(p) 如图4所示,将[s.]指定元件的低4位所确定的十六进制数(0~f)经译码后存于[d.]指定的元件中,以驱动七段显示器,[d.]的高8位保持不变。如果要显示0,则应在d0中放入数据为3fh。
图4 七段译码指令的使用
带锁存的7段显示指令segl的作用是用12个扫描周期的时间来控制一组或两组带锁存的七段译码显示。
3、方向开关指令
方向开关指令arws
方向开关指令arws(fnc75)是用于方向开关的输入和显示。如图5所示,该指令有四个参数,源操作数[s]可选x、y、m、s。图中选择x10开始的4个按钮,位左移键和右移键用来指定输入的位,增加键和减少键用来设定指定位的数值。x0接通时指定的是最高位,按一次右移键或左移键
可移动一位。指定位的数据可由增加键和减少键来修改,其值可显示在7段显示器上。目标操作数[d1]为输入的数据,由7段显示器监视其中的值(操作数可用t、c、d、v、和z),[d2]只能用y做操作数,n=0~3其确定的方法与segl指令相同。arws指令只能使用一次,而且必须用晶体管输出型的plc。
图5 方向开关指令的使用
4、aseii码转换指令
ascii码转换指令asc
ascii码转换指令asc(fnc76)的功能是将字符变换成ascii码,并存放在指定的元件中。如图6所示,当x3有效时,则将fx2a变成ascii码并送入d300和d301中。源操作数是8个字节以下的字母或数字,目标操作数为t,c,d。它只有16位运算,占11个程序步。
图6 aseii码转换指令说明