1.传送指令
传送指令MOV(FNC 12)将源数据传送到指定的目标软元件,图4-21中的X0为ON时,将K2X20(X20~X27)的值传送到K2Y20(Y20~Y27),T0的当前值传送到D0,DMOV指令将32位计数器C200的当前值传送到D2和D3组成的数据寄存器对(D2,D3)。图中T0的常闭触点和它的线圈组成一个脉冲发生器,T0的当前值在0~50之间周期性地变化。M8012是周期为100ms的时钟脉冲,用来给C200提供计数脉冲。本实训的程序见随书光盘中的例程“传送指令”。
打开该例程后,打开GX Simulator,程序被下载到仿真PLC。启动软元件监视视图,生成X窗口、Y窗口和D窗口。双击X窗口中的X0,使它变为ON。令梯形图中X0的常开触点闭合,开始执行MOV指令和DMOV指令。改变X20~X27的状态,观察Y20~Y27的状态是否随之而变。观察T0的当前值是否传送到了D0,C200的当前值是否传送到了D2和D3组成的数据寄存器对。
图4-21 传送指令
2.交换指令
执行交换指令XCH(FNC 17)时,数据在指定的目标软元件之间交换,交换指令应采用脉冲执行方式(见图4-22),否则在每一个扫描周期都要交换一次。
在软元件监视视图中生成X窗口和D窗口(见图4-23)。选中D窗口,用单选框设置监控的数据为32位十六进制(Hex)格式。
图4-22 交换指令
图4-23 软元件监视视图
输入D4的值为H6666,D5的值为H3333,以及D6、D7和D8、D9组成的32位整数的值。双击X窗口中的X1,在X1的上升沿,观察D4和D5的值是否相互交换,两个32位整数的值是否相互交换。
3.高低字节交换指令
一个16位的字由两个8位的字节组成。16位运算的SWAP(FNC 147)指令将D10的高低字节的值互换(见图4-24)。指令“DSWAPP D12”首先交换D12的高字节和低字节,然后交换D13的高字节和低字节。
SWAP指令必须采用脉冲执行方式,否则在每个扫描周期都要交换一次。
双击X窗口中的X2,使它变为ON,执行一次图4-23中的SWAPP指令和DSWAPP指令。观察D10的高低字节的值H77和H88是否相互交换,D12和D13高低字节的值是否分别相互交换。图4-24的32位整数(D12,D13)中的十六进制数为HAABB3355,交换高低字节后应变为HBBAA5533。在X2的下一个上升沿,D10和(D12,D13)中的数据应恢复为原来的值。(www.xing528.com)
图4-24 高低字节交换指令
4.成批传送指令
成批传送指令BMOV(Block Move,FNC 15)将源操作数指定的软元件开始的n个数据组成的数据块传送到指定的目标地址区。如果软元件号超出允许的范围,则数据仅传送到允许的范围。BMOV指令不能用于32位整数。
如果源软元件与目标软元件的类型相同,传送顺序是自动决定的(见图4-25),以防止源数据块与目标数据块重叠时源数据在传送过程中被改写。
图4-25 块传送指令
打开软元件批量监视对话框,输入D20~D23的值。双击X窗口中的X3,在X3的上升沿,观察D20~D23的值是否传送到了D25~D28(见图4-26和图4-27)。
图4-26 数据传送指令
图4-27 软元件监视视图
5.多点传送指令
多点传送指令FMOV(FNC 16,见图4-26)将单个软元件中的数据传送到指定目标地址开始的n个软元件(n≤512),传送后n个软元件中的数据完全相同。如果软元件号超出允许的范围,则仅仅传送允许范围的数据。
双击X窗口中的X3,观察在X3的上升沿,常数5678是否分别被传送给了D14~D18这5个数据寄存器(见图4-27)。
除了上述的传送指令,还有移位传送指令SMOV(FNC 13),它将4位十进制源数据(S·)中指定位数的数据,传送到4位十进制目标操作数中指定的位置。取反传送指令CML(FNC 14)将源软元件中的数据逐位取反(1→0,0→1),然后传送给指定的目标软元件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。