贵州大学本科毕业论文(设计) 第 35 页
? 如果源、目软组件的类型不同,只要位数相同就可以正确传送。 ? 如果源、目软组件号超出允许范围,则只对符合规定的数据进行传送。 4) 多点传送指令 ? 指令格式
? 指令编号及助记符:传送指令FNC16 FMOV [S·][D·]n
其中:[S·]为源软组件;[D·]为目软组件;n为目软组件个数
? 指令中给出的是目软组件的首地址。常用于对某一段数据寄存器清零或置相同的初始值。
? 源操作数可取除V、Z以外的所有的数据类型,目标操作数可取KnY、KnM、KnS、T、C、和D,n小等于512。 ? 指令用法
? FMOV指令是将源操作数中的数据传送到指定目标开始的n个元件中去,这n个元件中的数据完全相同。
图3.8 多点传送指令FMOV指令举例
5) 加法指令 ? 指令格式
? 指令编号及助记符:二进制加法指令FNC20 ADD[S1·][S2·][D·] 其中:[S1·]、[S2·]为加数的源操作数;[D·]为存放结果的目标件 ? 源操作数可取所有数据类型
? 目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 ? 指令用法
? ADD指令将两个源操作数[S1]、[S2]相加,结果放到目标元件中[D]中。指令说明如图3.8。
图3.9 ADD指令举例之一
贵州大学本科毕业论文(设计) 第 36 页
? 两个源数据进行二进制加法后传递到目标处,各数据的最高位是正(0)、负(1)的符号位,这些数据以代数形式进行加法运算,如5+(-8)=-3。 ? ADD指令有4个标志位,M8020为0标志,M8021为借位标志位。M8022为进位标志位,M8023为浮点标志位。
? 如果运算结果为0,则零标志位M8020置1,运算结果超过32,767(16位运算)或2147483647(32位运算)则进位标志位M8022位置1。
? 如果运算结果小于-32767(16位运算)或-2147483467(32位运算)则借位标志位M8021置1。
? 在32位运算中,用到字元件时,被指定的字元件是低16位元件,而下一个字元件中即为高16位元件,源和目标可以用相同的元件中,若源和目标之中相同,而且采用连续执行的ADD,(D)ADD指令时,加法的结果在每个扫描周期都会改变。如下图3.9所示。
图3.10 ADD指令之二
6) 加1指令、减1指令 ? 指令格式
? 指令编号及助记符:加1指令FNC24 INC [D·]? 减1指令FNC25 DEC [D·]
其中: [D·]是要加1(或要减1)的目标软组件 ? 目操作数的软组件为KnY、KnM、KnS、T、C、D、V和Z。 ? 指令用法
? INC指令的功能是将指定的目软组件的内容增加1,DEC指令的功能是将指定的目软组件的内容减1。指令说明如图3.10。
图3.11 INC和DEC指令举例
贵州大学本科毕业论文(设计) 第 37 页
? 16位运算时,如果+32767加1变成﹣32768,标志位不置位;32位运算时,如果+2147483647加1变成﹣2147483648,标志位不置位。
? 在连续执行指令中,每个扫描周期都将执行运算,必须加1注意。所以一般采用输入信号的上升沿触发运算一次。
? 16位运算时,如果﹣32768再减1,值变为+32767,标志位不置位;32位运算时,如果﹣2147483648再减1,值变为+2147483647,标志位不置位。 7) 求补指令 ? 指令格式
? 指令编号及助记符:求补指令FNC29 NEG [D·] ? 其中:[D·]为存放求补结果的目标组件。
? 目标操作数可取KnY、KnM、KnS、T、C、D、V和Z。 ? 指令用法
? NEG指令功能是将指定的目标软组件 [D·]的内容中的各位先取反(0→1,1→0),然后再加1,将其结果送入原先的目标软组件中。
图3.12 求补指令NEG举例
? 如果X000断开,则不执行这条NEG指令,源、目中的数据均保持不变。 ? 如果X000接通,则执行求补运算,即将D10中的二进制数,进行“连同符号位求反加1”,再将求补的结果将送入D10中。
? 求补的示意如图6.47所示。假设D10中的数为十六进制的H000C,执行这条求补指令时,就要对它进行“连同符号位求反加1”,求补结果为HFFF4再存入D10中。
图3.13 求补指令示意图
8) 初始化状态指令
? 指令编号及助记符:初始化状态指令 IST [S·] [D1·] [D2·]
贵州大学本科毕业论文(设计) 第 38 页
图3.14 初始化状态指令举例
其中:[S·] 指操作方式输入的首元件,一共是8个连号元件;这些元件可以是X、
Y、M、S。
? 指令使用说明
本文中8个连号的元件是:
[D1·] 指定在自动操作中实际用到的最小状态号。 [D2·] 指定在自动操作中实际用到的最大状态号。
初始化状态指令用于自动设置初始状态和特殊继电器。当M8000由OFF→ON时,
X020: X022: X024: X026:
手动 单步运动 全自动运行 自动运动启动
X021: X023: X025: X027:
回原点 一个周期运行 回原点启动 停止
下列元件自动受控;若执行条件M8000变为OFF,这些而元件状态保持不变。
S0:手动操作初始状态 S1:回原点初始状态 S2:自动操作初始状态 M8040:禁止转移 M8041:转移开始 M8042:启动脉冲
M8047:STL(步进顺序控制指令)监控有效
? 本指令在程序中只能使用一次,放在步进顺序控制指令STL前编程。 ? 如果使用这个指令,则S10~S19可作为原点复归用。因此,在编程中这些状态不作为普通状态使用。
? 为了使X20X24不会同时接通,推荐使用选择开关。
? 在初始状态IST指令中,方式切换可用图3.15说明。自动动作的特殊辅助继电器M8040M8047和 M8047的动作原理可根据图3.16说明。
贵州大学本科毕业论文(设计) 第 39 页
表3.3 FX2N特殊功能元件
M8000 M8040 M8041 M8042 RUN监视 M8040置0时禁止状态转移 状态转移开始 启动脉冲 M8044 M8045 M8046 M8047 检出机械原点动作 模式切换时,所有输出复位禁止 STL状态置ON STL监控有效
图3.15 IST初始状态S0~S2切换图