示例说明:
一个简易保安系统,在规定次数(如5次)的范围内,若密码不正确将启动报警系统,并关闭安全通道。若规定的次数内密码正确,进入密级操作。
流程示意图:
梯形图:
二、功能指令
下面功能指令中的操作数符号表示方法及解释。
:表示数据源。内容不随指令执行而变化的操作数称为源。
在可变址修改软元件编号的情况下,加上“·”符号的 表示。源的数量多时,以 、 等表示。
:表示目标操作数。内容随指令执行而改变的操作数被称作目标。
可作变址修饰时,加上“·”符号的 表示.
在目标数量多时,以 、 等表示。
: 以 或 表示既不做源,也不做目标的操作数。
这样的操作数数量很多时,以 、 、 、 等表示。
可用作操作数的软元件
A、X,Y,M,S等位元件。
B、位元件组合。以KnX,KnY,KnM,KnS等形式表示,作为数值处理。
C、数据寄存器D、定时器T的当前值寄存器、计数器C的当前值寄存器。
l数据寄存器D为16位,在处理32位数据时使用一对数据寄存器的组合。
例如,将数据寄存器D0指定为32位指令的操作数时,处理(D1,D0)32位数据(D1为高16位,D0为低16位)。
lT、C的当前值寄存器也可作为一般寄存器处理。
1、程序流程
分类 | 指令助记符 | 功能 | 页码 |
程 序 流 程 | CJ | 条件跳转 | |
CALL | 子程序调用 | ||
SRET | 子程序返回 | ||
FEND | 主程序结束 | ||
FOR | 循环范围开始 | ||
NEXT | 循环范围结束 |
A、CJ CALL指针编号可作变址修改;嵌套最多可为5层;对子程序返回无适用软元件。
B、.当程序使用多个FEND指令时,子程序请在最后的FEND指令与END指令之间编写,
FOR ~NEXT嵌套最多5层。
2、比较指令 [CMP]
适用软元件 | ·字软元件(S1· 、S2·) K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z ·位软元件(D·) Y、M、S |
l上图示例是D0的内容与常数100进行比较,大小比较是按代数形式进行的(-8<0);
l所有数据都以2进制值处理;
l当D0>100,M0“ON” ,当D0=100,M1“ON” ,当D0<100,M2“ON”;
l目标地址指定M0,则M1、M2被自动占用;
l当X001“OFF”时,M0、M1、M2仍保持以前状态。如当D0的内容为50,则50<100,M2“ON” ,M0、M1都“OFF” ,X001“OFF”时,M2仍“ON” 。
指令不执行时,想要清除比较结果,可使用复位指令。
3、传送指令 [MOV]
适用软元件 | ·字软元件(S·) K、H、KnY、KnM、KnS、T、C、D、V,Z ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
功能和动作 使数据原样传送的指令。
l将源(S·)的内容向目标(D·)传送,X003“OFF”时,目标(D·)的内容不变化;
4、反向传送 [CML]
适用软元件 | ·字软元件(S·) K、H 、KnX、KnY、KnM、KnS、T、C、D、V,Z ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
功能和动作 将数据反向传送的指令
l将D0的内容每位取反(0取反为1,1取反为0)后,传送到目标地址,常数K被自动转换成2进制。如:
D10
1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
符号位(0=正数, 1=负数)
0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
Y17 Y16 Y15 Y14 Y13 Y12 Y11 Y10 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0
无变化 反向数据被传送
5、加法运算 [ADD]
适用软元件 | ·字软元件(S1· 、S2·) K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
标志位 | 零 | M8020 |
借位 | M8021 | |
进位 | M8022 |
功能和动作
l两个源数据进行加法后传送到目标处,各数据的最高位是符号位(正数为0,负数为1),数据以代数形式进行加法运算(8 (-8)=0)。
l运算结果为0时,0标志位M8020动作;运算结果超出32767(16位运算)或2147483647(32位运算)时,进位标志位M8022动作;运算结果小于-32768(16位运算)或-2147483648(32位运算)时,借位标志位M8021动作;
l进行32位运算时,字软元件的低16位侧的软元件被指定,紧接着上述软元件编号后的软元件作为高位,为了防止编号重复,建议将软元件指定为偶数编号。
l对于脉冲型指令,每出现一次OFF到ON的变化,操作数做一次运算。
l可以将源(S·)和目标(D·)指定为相同的软元件编号。这种情况下,如使用连续执行型指令(ADD、DADD),则每个扫描周期加一次,请务必注意。
6、减法运算 [SUB]
适用软元件 | ·字软元件(S1· 、S2·) K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
标志位 | 零 | M8020 |
借位 | M8021 | |
进位 | M8022 |
功能和动作
l(S1·)指定的内容和(S2·)指定的内容相减,结果存入(D·)指定的软元件中。(8-(-8)=16)。
l各种标志位的动作,32位运算软元件的指定方法,连续型和脉冲型的差异等都跟ADD指令相同。
7、乘法运算 [MUL]
适用软元件 | ·字软元件(S1· 、S2·) K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
功能和动作
BIN BIN BIN
(D0)×(D2) (D5,D4)
16位 16位 32位
l各源指定的软元件内容的乘积,以32位数据形式存入目标地址指定的软元件(低位)和紧接其后的软元件(高位)中,如 (D0)=125,(D2)=8,则(D5,D4)=1000;
l结果的最高位是符号位,0为正,1为负;
l(D·)是位元件时,可以进行K1∽K8的位指定。指定为K4时,只能求得乘积运算的低16位。
8、除法运算 [DIV]
适用软元件 | ·字软元件(S1· 、S2·) K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
功能和动作
被除数 除数 商 余数
BIN BIN BIN BIN
(D0)÷(D2) (D4)··· (D5)
16位 16位 16位 16位
9、增1 [INC]
适用软元件 | ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
功能和动作
(D0) 1 (D0)
lX000每置“ON”一次,D0的内容增1,在连续执行指令中,每个扫描周期执行加1运算,所以务必引起注意;
l16位运算时,如果32767加1变为-32768,标志位不动作
10、减1 [DEC]
适用软元件 | ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
功能和动作
(D0)—1 (D0)
X001每置“ON”一次,D0的内容减1,在连续执行指令中,每个扫描周期执行减1运算,所以务必引起注意;
l–32768或-2147483648减1变为32767或2147483647,标志位不动作
11、逻辑与 [WAND]
适用软元件 | ·字软元件(S1· 、S2·) K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
(D0)∧(D2) (D4)
l对各位进行逻辑与运算。
1∧1=1 0∧1=0
1∧0=0 0∧0=0
12、逻辑或 [WOR]
(D0)∨(D2) (D4)
l对各位进行逻辑或运算。
1∨1=1 0∨1=1
1∨0=1 0∨0=0
13、逻辑异或 [WXOR]
(D0)( (D2) (D4)
l对各位进行逻辑异或运算;
1(1=0 0(1=1
1(0=1 0(0=0
l如果将这个指令与CML组合使用,将进行异或非运算。
求补 [NEG]
适用软元件 | ·字软元件(D·) KnY、KnM、KnS、T、C、D、V,Z |
(D10) 1 (D10)
l将(D·)指定的软元件内容中各位先取反(0变1,1变0),然后再加1,将其结果存入原先的软元件中;
使用连续执行指令则在每一个扫描周期执行一次,务必引起注意。
14、触点比较指令
适用软元件 | ·字软元件(S1· 、S2·) K、H、KnX、KnY、KnM、KnS、T、C、D、V,Z |
接点比较指令 [LD※]
※表示:=、>、<、<>、≦、≧ 。
指令 | 导通条件 | 非导通条件 |
LD= | (S1·)= (S2·) | (S1·)≠(S2·) |
LD> | (S1·)> (S2·) | (S1·)≦(S2·) |
LD< | (S1·)< (S2·) | (S1·)≧(S2·) |
LD<> | (S1·)≠(S2·) | (S1·)=(S2·) |
LD≦ | (S1·)≦(S2·) | (S1·)>(S2·) |
LD≧ | (S1·)≧(S2·) | (S1·)<(S2·) |
l当计数器C0的当前值为100时,驱动。
l当D0的内容大于-100,且X000处于“ON”时,驱动Y1。
接点比较指令 [AND※]
16指令 | 导通条件 | 非导通条件 |
AND= | (S1·)= (S2·) | (S1·)≠(S2·) |
AND> | (S1·)> (S2·) | (S1·)≦(S2·) |
AND< | (S1·)< (S2·) | (S1·)≧(S2·) |
AND<> | (S1·)≠(S2·) | (S1·)= (S2·) |
AND≦ | (S1·)≦(S2·) | (S1·)> (S2·) |
AND≧ | (S1·)≧(S2·) | (S1·)< (S2·) |
l当X000处于“ON”时,且计数器C10的当前值等于100时,驱动Y3。
l当X001处于“ON”时,且D0的内容不等于10时,置位Y4。
接点比较指令 [OR※]
16指令 | 导通条件 | 非导通条件 |
OR= | (S1·)= (S2·) | (S1·)≠(S2·) |
OR> | (S1·)> (S2·) | (S1·)≦(S2·) |
OR< | (S1·)< (S2·) | (S1·)≧(S2·) |
OR<> | (S1·)≠(S2·) | (S1·)= (S2·) |
OR≦ | (S1·)≦(S2·) | (S1·)> (S2·) |
OR≧ | (S1·)≧(S2·) | (S1·)< (S2·) |
l当X001处于“ON”,或计数器C10的当前值等于100时,驱动Y1
三、变址寄存器V、Z说明
V、Z的显著作用是能够和其它软元件或数值组合使用,从而动态修改软元件编号或数值内容。
修改说明:Z=1,V=6。
MOV K1X000Z K1Y010Z等同于 MOV K1X001 K1Y011 ;
MOV K4X000 K4M3V等同于 MOV K4X000 K4M9 ;
MOV K4M3V K4S0V等同于 MOV K4M9 K4S6 ;
MOV K1000 C1Z等同于 MOV K10000 C2 ;
MOV K2000 T3Z等同于 MOV K20000 T4 ;
MOV K3000 D0Z等同于 MOV K30000 D1 ;
MOV K40Z D100V 等同于 MOV K41 D106 ;
MOV H00FF D101V 等同于 MOV H0100 D107 ;
CALL P0Z 等同于 CALL P1 ;
四、专家指令PID运算
D0:要达到的目标值,为S1 D1:测定值,反馈回的值,为S2
D100:参数,为S3 S3 0:KP 参考值:2000
S3 1:KI 参考值:500 S3 2:KD 参考值:0
S3 3:E(T) S3 4:E(T-1)
S3 5:e(t)-e(t-1) S3 6:e(t-1)-e(t-2);
S3 7:e(t)-2e(t-1) e(t-2) S3 8:增量
S3 9:输出,限制为12位Max=2048 (旧版8位DA的为255);