Download presentation
Presentation is loading. Please wait.
2
7.1 功能指令通则 1.功能指令的表现形式 功能号:FNC00~FNC99 助记符:如MOV等 操作数:
7.1 功能指令通则 1.功能指令的表现形式 功能号:FNC00~FNC99 助记符:如MOV等 操作数: [S]:源(Source)操作数。若可使用变址功能时,表达为[S·]; [D]:目标(Destination)操作数。若可使用变址功能时,表达为[D·]; m、n:其它操作数。常常用来表示数制(十进制、十六进制等)或作为源和目标的补充注释。
3
功能指令中附有符号(D)表示处理32bit数据,否则表示处理16bit数据;
2.数据长度及指令的执行形式 功能指令中附有符号(D)表示处理32bit数据,否则表示处理16bit数据; 助记符后附有符号(P)表示脉冲执行(上升沿执行),否则表示连续执行。 [ D·] [ S·] X1 D10 MOV D12 X2 X3 D11 MOVP DMOV MOV指令
4
3.位元件及其位元件的组合 位元件:只处理ON/OFF状态的元件(如X、Y、M、S); 字元件:处理数字的元件(如T、C、D); 位元件组合起来处理数字数据: Kn加首元件号来表示; 元件按4个一组连续编号。 例如: K2X0:X7~X 位; K8Y10:Y47~Y 位; K4M0:M15~M 位。
5
注意: 某些应用会用到各种标志, 这些标志在手册中详细列表说明。例如: M8020:标志零(Z) M8021:借位标志(Br) M8022:进位标志(Cy) M8029:执行完毕标志(F) M8029:功能指令出错标志 功能指令每次执行时都会影响标志的状态,编程是应加以注意。
6
1.条件跳转CJ(Conditional Jump) CJ和CJ(P)指令用于跳过顺序控制程序中的某一部分,以减少扫描时间,可双线圈操作。
5.2 几个基本的功能指令 1.条件跳转CJ(Conditional Jump) CJ和CJ(P)指令用于跳过顺序控制程序中的某一部分,以减少扫描时间,可双线圈操作。 操作元件:无 程序步数:……1步 SRET FNCO2 子程序返回 操作元件:指针P0~P62(允许变址修改) 程序步数:CALL和CALL(P)……3步 标号Pxx……1步 嵌 套:5级 CALL FNC01 (P)(16) 转子程序
7
回顾:指针P/I 1)分支指针: P0~P63(共64点) 功能: 指示跳转指令(CJ)的跳步目标;
(b)子程序调用 X20 M500 CJ P0 标号P0 (a) 跳转用指针 X12 ··· 标号P1 X10 子程序 CALL P1 FEND SRET 回顾:指针P/I 1)分支指针: P0~P63(共64点) 功能: 指示跳转指令(CJ)的跳步目标; 指示子程序调用指令(CALL)调用的子程序入口地址,执行到子程序中SRET(子程序返回)指令时返回去执行主程序(参看功能指令FUC00、FUN01)。
8
CALL(Sub Routine Call) SRET(Sub Routine Return) 在子程序中可形成子程序嵌套,总数可有5级;
2、子程序调用与子程序返回 CALL(Sub Routine Call) SRET(Sub Routine Return) 在子程序中可形成子程序嵌套,总数可有5级; 在子程序和中断子程序中使用的定时器范围规定为: T192-T199和T246-T249 CALL FNC01 (P)(16) 转子程序 操作元件:指针P0~P62(允许变址修改) 程序步数:CALL和CALL(P)……3步 标号Pxx……1步 嵌 套:5级 SRET FNCO2 子程序返回 操作元件:无 程序步数:……1步
9
P1 X0 主程序 CALL P1 FEND SRET 子程序 (2) (1) P12 P11 X1 主程序 CALL(P) P11 FEND SRET 子程序 CALL(P) P12 嵌套子程序
10
IRET: Interruption Retrun EI: Interruption Enable
DI: Interruption Disable IRET FNCO 操作元件:无 中断返回 步数: 1步 EI FNC 操作元件:无 允许中断 步数: 1步 DI FNCO 操作元件:无 禁止中断 步数: 1步 PLC通常在禁止中断状态; 中断信号的脉宽必须超过200μS
11
功能:指明某一中断源的中断程序入口标号,执行到IRET(中断返回)指令时返回主程序。 中断源:FX2有6个外部中断源 3个定时中断源
回顾:中断用指针I0□□~I8□□ 功能:指明某一中断源的中断程序入口标号,执行到IRET(中断返回)指令时返回主程序。 中断源:FX2有6个外部中断源 3个定时中断源 优先权:先产生的中断具有优先权, 同时产生时指针号较低的具有优先权。 0 输入中断 0:下降沿中断 1:上升沿中断 输入号(0—5) 每个输入只能用一次 I 定时器中断 10—99mS 定时器中断号(6—8) 每个定时器只能用一次 中断指针
12
相应的特殊辅助继电器置1时,中断子程序不能执行:
I101 I001 允许中断 EI DI SRET 中断服务程序 (1) X10 M8050 FEND (2) 相应的特殊辅助继电器置1时,中断子程序不能执行: M850△置1时, I△**不执行。 在一个中断程序执行中时,其它中断被禁止; 可实现两级中断嵌套。
13
一个中断指针(I***占一步,可设置9个中断点;
多个中断信号顺序产生时,其优先级为:时间优先,指针号低优先; 如果中断信号产生于禁止中断区间, 这中断信号被存储,并在EI指令之后被执行; 在子程序和中断子程序中使用的定时器范围规 定为: T192-T199和T246-T249
14
4、主程序结束 FEND(First End)
P13 X10 CJ P 13 主程序 FEND 子程序 中断服务程序 END X1 CJ P 12 主程序 FEND P12 FEND FNC 操作元件:无 主程序结束 步数: 1步
15
5、警戒时钟 WDT (Watch Dog Timer)
END 60mS程序 WDT 有120mS扫描周期时间的程序 END MOV K150 D8000 M8000 D8000存储警时间 WDT FNC 操作元件:无 (P) 主程序结束 步数: 1步
16
将源 [S1.][S2.]的数据比较, 结果送到目标[D.]中。
6、比较 CMP (Compare) K、H KnX KnY KnM KnS T C D V、Z [D.] [S1.][S2] CMP FNC10 (P)(16/32) 比较 程序步数: CMP和CMP(P)--7步 (D) CMP和(D) CMP (P) --13步 X Y M S 将源 [S1.][S2.]的数据比较, 结果送到目标[D.]中。
17
K100>C20的当前值时,M0=ON K100=C20的当前值时,M1=ON K100<C20的当前值时,M2=ON
[ D·] [ S1·] [S2·] X1 K100 CMP C20 M0 M1 M2 K100>C20的当前值时,M0=ON K100=C20的当前值时,M1=ON K100<C20的当前值时,M2=ON X1=OFF: CMP不执行 M0、M1、M2的状态保持不变。
18
7、区间比较 ZCP (Zone Compare)
K、H KnX KnY KnM KnS T C D V、Z [D.] [S1.][S2.][S.] ZCP FNC11 (P)(16/32) 区间比较 程序步数: ZCP和ZCP(P)——9步 (D) ZCP和(D) ZCP (P) ——17步 X Y M S 将一个数据[S.]和两个源 [S1.][S2.]数据值比较, 结果送到目标[D.]中; [S1.]的值不能大于[S2.]。
19
K100<C30的当前值<K120,M4=ON K120<C30的当前值,M5=ON X0=OFF: ZCP不执行
[ D·] [ S1·] [S2·] [S·] X0 K100 ZCP K120 M3 M4 C30 M5 K100 > C30的当前值,M3=ON K100<C30的当前值<K120,M4=ON K120<C30的当前值,M5=ON X0=OFF: ZCP不执行 M3、M4、M5的状态保持不变。
20
8、传送 MOV (Move) [S.] MOV FNC12 (P)(16/32) 传送 [D.] 程序步数: MOV和MOV(P)——5步
K、H KnX KnY KnM KnS T C D V、Z [D.] [S.] MOV FNC12 (P)(16/32) 传送 程序步数: MOV和MOV(P)——5步 (D) MOV和(D) MOV (P) ——9步 [ D·] [ S·] X1 D10 MOV D12 X2 X3 D11 MOV P D MOV
21
移位传送:SMOV FNC13(Shif Move ) 取反传送:CML FNC14(Comlment)
其它传送指令: 移位传送:SMOV FNC13(Shif Move ) 取反传送:CML FNC14(Comlment) 块传送: BMOV FNC15(Block Move ) 多点传送: FMOV FNC16(Fill Move) 数据变换指令: BCD FNC18(Binary Code to Decimal) BIN FNC19( Decimal Code to Binary ) X2 X3 D20 D21 BIN D10 D11 BCD
22
9、算术运算 加法指令ADD FNC20(Addition) 加法指令SUB FNC21(Subtraction) 加法指令MUL FNC22(Multiplication) 加法指令DIV FNC23(Division) 加1指令 INC FNC24 (Increment) 减1指令 DEC FNC25(Decrement)
23
ADD SUD MUL DIV [ D·] [ S1·] [S2·] X1 D10 D12 D14 X2 D0 D22 X3 D20 D24
INC(P) X2 D11 DEC(P)
24
10、字逻辑运算指令 字逻辑与 WAND 字逻辑或 WOR WXOR CMP(P) 取反 求补(Negation) 取反加1
FNC [ S1·] [S2·] [ D·] X1 D10 WAND D12 D14 字逻辑与 X2 D20 WOR D22 D0 FNC [ S1·] [S2·] [ D·] 字逻辑或 X3 D30 WXOR D32 D34 CMP(P) FNC [ S1·] [S2·] [ D·] 字逻辑异或(Exclucisive or) 取反 X4 D50 NEG(P) FNC [ D·] 求补(Negation) 取反加1
25
11、循环移位指令 Rotation Right/Left
本指令使16位数据向左/右循环移位; 最后一次从高位移出的状态存于进位标志M8022中. ROR FNC30 (P) (16/32 ) (“!”) 右循环 操作元件:[ D·]:KnY、KnM、KnS、T、C、D、Z 程序步数:ROR,ROR(P),ROL,ROL(P)……5步 (D)ROR,(D)ROR(P),(D)ROL,(D)ROL(P)……9步 位移量:n<16(16bit指令), n<32(32bit指令) 标 志:M8002(进位) ROL FNC31 左循环
26
X2 X3 D1 K4 ROR(P) D0 ROL(P) 左循环 1 一次循环后 1 右循环 1 一次循环后 1
27
12、其它移位指令 X1 D0 RCL(P) K4 带进位左循环Rotation Left with Carry FNC32 [ D·] n
RCR(P) K3 带进位右循环Rotation Right with Carry X3 X0 M0 K9 K3 SFTR(P) FNC [ S·] [ D·] n1 n2 位右移Shift Right 位左移Shift Left X0 M0 K9 K3 SFTR(P) FNC [ S·] [ D·] n1 n2 X4
28
FIFO ( First in First out )
X3 D D1 K10 SFWR(P) FNC [ S·] [ D·] n 先入先出写入Shift Register Write D0 D9 D10 D7 D5 D6 D8 D3 D1 D2 D4 Point X3 D1 D20 K9 SFRD(P) FNC [ S·] [ D·] n 先入先出读出Shift Register Read Point D9 D1 D7 D5 D6 D8 D3 D2 D4 D20
29
13、区间复位指令 [D1.][D2] ZRST FNC40 (P)(16/32) 区间复位 [D1.] [D2] K、H KnX KnY
KnM KnS T C D V、Z [D1.][D2] ZRST FNC40 (P)(16/32) 区间复位 程序步数: ZRST和ZRST(P)——5步 X Y M S [D1.]<[D2]指定同一元件 [D1.] [D2] [ D1·] [ D2·] X2 M500 ZRST(P) M599 X3 C235 ZRST C255
30
REF FNC50 操作元件:[D]--最低位为零的X、Y (16)(“1”)(P) n---K和H的参数,8的倍数
14、刷新指令 REF FNC 操作元件:[D]--最低位为零的X、Y (16)(“1”)(P) n---K和H的参数,8的倍数 刷新 步数: REF和REF(P)----5步 [ D·] n X2 X10 REF K8 X3 Y0 REF K24
31
原滤波时间10mS执行后X0~X7的滤波时间为1 mS
15、刷新和滤波时间调整 REFF FNC 操作元件: X0~X7 (16) (P) n:0~60(滤波时间mS) 刷新和滤波时间调整 步数: REFF和REFF(P)----3步 n 原滤波时间10mS执行后X0~X7的滤波时间为1 mS K1 REFF X10 X0 X1 n K20 REFF M8000 X0 X1 执行后X0~X7的滤波时间为20 mS
32
功能指令编程举例 ~ 16彩灯花样变换控制 基本要求: 16彩灯仅有一灯亮; 每隔0.5S向右移一灯位; 循环 有启/停控制 PLC
SB1 SB2 X0 X1 C Y0 Y7 Y10 Y17 PLC 220V 380V
33
END K5 M8002 Y17 Y0 M0 ZRST K4Y0 K1 MOV(P) T0 ROL X X1 16彩灯控制梯形图
34
16彩灯12种花样变换控制: 1)彩灯的移位位数控制:X1为ON移一位;X1为OFF移二位; 2)彩灯的移位速度控制:由T0每隔0.5S发一脉冲进行移位控制; 3)彩灯的移位方向控制;X11为ON时ROR有效,右移;X11为OFF时ROL有效,左移。 4)彩灯的三种初态控制:由三选1开关使X15、X16、X17中的一个输入接通,使被移动的灯分别为1个、2个和4个。
35
16彩灯12种花样变换控制 END K5 M8002 Y17 Y0 X7 ZRST K4Y0 K1 MOV(P) X15 K3 X16 HF
ROL X10 X11 K2 ROR 16彩灯12种花样变换控制
36
问题:每变换一种花样就 需增加一个开关,需要发出 切换信号,如何实现 思考: 自动花样变换
37
作业: 5.7,5.10,.5.16,5.18,5.23
Similar presentations