1.位元件与字元件
只具有接通(1)或断开(0)两种状态的元件称为位元件。字元件是位元件的有序集
合。FX系列的字元件最少4位,最多32位。常用字元件见表6-6。
表6-6 字元件范围
多个位元件按一定规律的组合叫位组件,例如输出位组件KnY0,K表示十进制,n表示组数,n的取值为1~8,每组有4个位元件,Y0是输出位组件的最低位。KnY0的全部组合及适用指令范围见表6-7。
表6-7 KnY0的全部组合及适用指令范围
2.传送类指令(MOV SMOV CMOV BMOV FMOV)
(1)传送指令的功能是将源数据传送到指定的目标。如图6-31所示,当X0接通(X0=1)时,源操作数[S.]中的数据D10传送到目标操作元件D12中。当指令执行时,数据D10自动转换成二进制数。当X0断开时,指令不执行,数据保持不变。
使用应用MOV指令时应注意:
1)源操作数可取所有数据类型,目标操作数可以是KnY、KnM、KnS、T、C、D、V、Z。
2)16位运算时占5个程序步,32位运算时则占9个程序步。
(2)取反传送指令(CML)将源操作数元件的数据逐位取反并传送到指定目标。如图6-32所示,当X0为ON时,执行CML,将D0的低4位取反向后传送到Y3~Y0中。
图6-31 传送指令格式
图6-32 取反传送指令格式
使用取反传送指令CML时应注意:
1)源操作数可取所有数据类型,目标操作数可为KnY、KnM、KnS、T、C、D、V、Z,若源数据为常数K,则该数据会自动转换为二进制数。
2)16位运算占5个程序步,32位运算占9个程序步。
(3)块传送指令(BMOV)将源操作数指定元件开始的n个数据组成数据块传送到指定的目标。如图6-33所示。
图6-33 块传送指令格式
使用块传送指令时应注意:
1)源操作数可取KnX、KnY、KnM、KnS、T、C、D和文件寄存器,目标操作数可取KnT、KnM、KnS、T、C和D。
2)只有16位操作,占7个程序步。
3)如果元件号超出允许范围,数据则仅传送到允许范围的元件。
(4)多点传送指令(FMOV)的功能是将源操作数中的数据传送到指定目标开始的n个元件中,传送后n个元件中的数据完全相同。如图6-34所示,当X0为ON时,把K0传送到D0~D9中。
图6-34 多点传送指令格式
使用多点传送指令FMOV时应注意:
1)源操作数可取所有的数据类型,目标操作数可取KnX、KnM、KnS、T、C、和D。
2)16位操作占7的程序步,32位操作则占13个程序步。
3)如果元件号超出允许范围,数据仅送到允许范围的元件中。
例:(www.xing528.com)
有8盏指示灯,控制要求:当按键X0接通时,全部灯亮;当X1接通时,奇数灯亮;当X2接通时,偶数灯亮;当X3接通时,全部灯灭。试用数据传送指令编写程序。
根据题目要求,其输入输出对应关系见表6-8。
表6-8 指示灯输入输出对应关系表
梯形图如图6-35所示。
图6-35 指示灯梯形图
3.比较指令(CMP)
(1)比较指令是将源操作数[S1.]和[S2.]的数据进行比较,然后将目标操作数[D.]进行相应的操作。如图6-36所示,X0=1时,将K10的数值与D12进行比较。若D12小于K100,[D.]指定的M0自动置1(即Y0接通);若D12等于K10,M1自动置1(即Y1接通);若D12大于K10,M2自动置1(即Y2接通)。在X0断开,即不执行CMP指令时,M0~M2保持X0断开前的状态。因此若要清除比较结果需要用复位RST或ZRST指令。
(2)区间比较指令(ZCP)执行时对源操作数[S.]与[S1.]和[S2.]的内容进行比较,并将比较结果送到目标操作数[D.]中。如图6-37所示,当X0为ON时,比较C0当前值与K10和K10,将结果送M0、M1、M2中。X0为OFF,则ZCP不执行,M0、M1、M2不变。
图6-36 比较指令格式
图6-37 区间比较指令格式
使用比较指令CMP/ZCP时应注意:
1)[S1.],[S2.]可取任意数据格式,目标操作数[D.]可取Y,M和S。
2)使用ZCP时,[S2.]的数值不能小于[S1.]。
3)所有的源数据都被看成二进制值处理。
4.加1和减1指令
INC和DEC指令分别是当条件满足时将指定元件的内容加1或减1。如图6-38所示,当X0为ON时,(D0)+1→(D0);当X1为ON时,(D2)-1→(D2)。若指令是连续指令,则每个扫描周期均作一次加1或减1运算。图6-38为加1和减1指令的使用。
图6-38 加1和减1指令格式
使用加1和减1指令时应注意:
1)指令的操作数可为KnY、KnM、KnS、T、C、D、V、Z。
2)当进行16位操作时为3个程序步,32位操作时为5个程序步。
3)在INC运算时,如数据为16位,则由+32767再加1变为-32768,但标志不置位;同样,32位运算由+2147483647再加1就变为-2147483648时,标志也不置位。
4)在DEC运算时,16位运算-32768减1变为+32767,且标志不置位;32位运算由-2147483648减1变为=2147483647,标志也不置位。
5.区间复位指令
区间复位指令[ZRST(P)]是将指定范围内的同类元件成批复位。如图6-39所示,当X0由OFF→ON时,状态元件S20~S30成批复位。
使用区间复位指令时应注意:
1)[D1.]和[D2.]可取Y,M,S,T,C,D,且应为同类元件,同时[D1.]的元件号应小于[D2.]指定的元件号,若[D1.]的元件号大于[D2.]元件号,则只有[D1.]指定元件被复位。
2)ZRST指令只有16位处理,占5个程序步,但[D1.],[D2.]也可以指定32位计数器。
图6-39 成批复位指令格式
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。