博世力士乐运动控制器常用编程指令手册_第1页
博世力士乐运动控制器常用编程指令手册_第2页
博世力士乐运动控制器常用编程指令手册_第3页
博世力士乐运动控制器常用编程指令手册_第4页
博世力士乐运动控制器常用编程指令手册_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第 1 章节:数据类型和变量定义1.1 常用数据类型:开关量类型:BOOL整型数类型:浮点数类型:字符:CHAR字符串:STRING数组类型:ARRAY结构体:STRUCT变量类型变量定义如何变量局部变量全局变量输入/输出变量常数变量掉电保持变量掉电保持变量最大数量2时间数类型:TIME1.2 变量定义:(1)如何一个变量:变量名称符号:冒号数据类型初始值(可选)符号:分号注释(可选)(2)局部变量定义:VAR(在 POU 里定义的变量,局部变量只适用于定义所在的 POU 内部)3定义局部变量时选择:VAR4(3)全局变量:VAR_GLOBAL(在全局变量表GVL 里定义的变量,所有 POU

2、 都可以调用)定义全局变量时选择:VAR_GLOBAL5(4)输入变量:VAR_INPUT输出变量:VAR_OUTPUT输入输出变量:VAR_IN_OUT(输入/输出变量多用于功能块 FB,如下图示例:)(5)常数变量 CONSTANT(固定值,不可更改)局部常数变量:VAR_CONSTANT全局常数变量:VAR_GLOBAL CONSTANT6(6)掉电保持变量 RETAIN /PERSISTENT:VAR RETAIN(局部变量)VAR_GLOBAL RETAIN(全局变量)(7)下图列出了普通变量和保持变量的区别(x表示数值不变,- 表示数值会被清掉):掉电保持 Retain 变量的大小

3、不能超过最大 Retain 变量的范围:(8)MLD(基于驱动的编程)应用时,掉电保持 Retain 变量最大分别是:MPB18VRS/MPB20VRS:492bytes (包括 Persistent 变量, 标准面板)MPC18VRS/MPC20VRS 32KB(包括 Persistent 变量, 高级面板带 SD 卡)(9)器(基于 PLC 的编程)应用时,掉电保持 Retain 变量最大分别是:IndraControlRetain data system (KB)Retain data PLC (KB)Retain data PLC persistent (KB)CML L25128 (

4、130816)128 (130000)CML L45128 (130816)128-130000CML L65128 (130816)128 (130000)CML L75128 (130816)128 (130000)XM21 / XM226464 (65000)XM126464 (65000)VPB40.32 MB10007第 2 章节:基础运算符.1 常用的运算(1)在Input Assistant的Keywords能找到常用的运算符,如下图所示:LD 梯形图里调出Input Assistant菜单的方法如下:(在一行的左侧空白处,鼠标右击)数据位处理符:NOT求反AND与OR或XOR异

5、或SHL操作数逻辑左移位SHR操作数逻辑右移位ROL左循环ROR右循环比较符:GT大于LT小于LE小于或等于GE大于或等于EQ等于NE不等于基础数据运算符:MOVE赋值ADD加法SUB减法MUL乘法DIV除法TRUNC取整SQRT开平方EXPT次方MAX取最大值MIN取最小值LIMIT上下限制ABS绝对值三角函数三角函数8ST 文本编程里调出InputAssistant菜单的方法如下:(空白编辑处,鼠标右击)(2)MOVE 赋值:9(3)ADD 加法:(4)SUB 减法:(5)MUL 乘法:(6)DIV 除法:梯形图:文本 ST:var2:=var1*10;梯形图:文本 ST:var2:=va

6、r1-10;梯形图 LD:文本 ST:var2:=var1+10;如:变量 var1 的值赋给 var2梯形图里的编写:ST 文本里的编写: ivar2:= MOVE(ivar1); 或ivar2:= ivar1;10(7)TRUNC 取整:(8)SQRT 开平方:(结果:q 等于 4)(9)EXPT 次方:(结果:var1 等于 49)(10)MAX 取最大值梯形图:文本 ST:out1:=MAX(in0,in1);(结果:如果in0大于in1,out1等于in0,否则out1等于in1)梯形图:文本 ST: var1 := EXPT(7,2);梯形图:文本 ST:q:=SQRT(16);梯

7、形图:文本 ST:diVar:=TRUNC(1.9); (* 结果: 1 *)diVar:=TRUNC(-1.4); (* 结果: -1 *)梯形图:文本 ST:var2:=var1/10;11(11)MIN 取最小值(12)LIMIT 上下限制(13)ABS 绝对值(14)三角函数:COS梯形图:文本 ST:rVar1:=COS( 0 ); (结果:rVar1 为 1.0)SIN梯形图:文本 ST:rVar1:=SIN(1.570796);(结果:rVar1 为1.0)梯形图:文本 ST:var1:=ABS(-2); (结果:var1 为 2)梯形图:文本 ST:out1:=LIMIT(iM

8、in,in1,imax);(如果 iMin=0,imax=100: 当in1<0,out1=0;当100>in1>0,out1=in1; 当100<in1,out1=100;)梯形图:文本 ST:out1:=MIN(in0,in1);(结果:如果in0小于in1,out1等于in0,否则out1等于in1)122.2 比较(1)GT 大于:(注:bS1 是 bool 量)()LT 小于:(注:bS1 是 bool 量)梯形图:文本 ST:bS1:=var1>100;( 结果:var1大于100时,bS1是TRUE; var1小于或等于100, bS1是FALSE)

9、ATAN梯形图:文本 ST:rVar1:=ATAN ( 0.5 ); (结果:rVar1为0.4636476)ACOS梯形图:文本 ST:rVar1:=ACOS( 0.5 ); (结果:rVar1为1.047198)ASIN梯形图:文本 ST:rVar1:=ASIN( 0.5 ); (结果:rVar1为0.5235988)TAN梯形图:文本 ST:rVar1:=TAN( 0.5 ); (结果:rVar1为0.5463025)13()LE 小于或等于:(注:bS1 是 bool 量)()GE 大于或等于:(注:bS1 是 bool 量;)()EQ 等于:(注:bS1 是 bool 量;)()NE

10、 不等于:(注:bS1 是 bool 量;)2.3 变量处理(1)NOT求反:梯形图:文本 ST:bS1:=var1<>100;梯形图:文本 ST:bS1:=var1=100;梯形图:文本 ST:bS1:=var1>=100;梯形图:文本 ST:bS1:=var1<=100;梯形图:文本 ST:bS1:=var1<100;( 结果:var1小于100时,bS1是TRUE; var1大于或等于100, bS1是FALSE)14(BOOL, BYTE,WORD,DWORD,LWORD类型的变量可用)(2)AND与:(BOOL,BYTE,WORD,DWORD,LWORD

11、类型的变量可用)(3)OR(BOOL,或: BYTE,WORD,DWORD,LWORD类型的变量可用)(4)XOR 异或:(BOOL, BYTE, WORD,DWORD,LWORD类型的变量可用)(5)SHL 操作数逻辑左移位:(BYTE, WORD, DWORD,LWORD类型的变量可用)VARin_word : WORD:=16#0045; (* 2#0000_0000_0100_0101*)erg_word : WORD;n: BYTE :=2; /移动位数END_VAR梯形图:文本 ST:byVar1:= 2#1001_0011 XOR 2#1000_1010;(结果:byVar1等于

12、2#0001_1001)梯形图:文本 ST:byVar1:= 2#1001_0011 OR 2#1000_1010; (结果:byVar1等于2#1001_1011)梯形图:文本 ST:byVar1:= 2#1001_0011 AND 2#1000_1010; (结果:byVar1等于2#1000_0010)梯形图:文本 ST:byVar1:=NOT 2#1001_0011; (结果:byVar1等于 2#0110_1100)15(6)SHR 操作数逻辑右移位(BYTE, WORD, DWORD,LWORD类型的变量可用)(7)ROL 左循环(BYTE, WORD, DWORD,LWORD类型

13、的变量可用)(8)ROR 右循环(BYTE, WORD, DWORD,LWORD类型的变量可用)VARin_word : WORD:=16#0045; (* 2#0000000001000101*)erg_word : WORD;n: BYTE :=2; /循环位数END_VARVARin_word : WORD:=16#0045; (* 2#0000000001000101*)erg_word : WORD;n: BYTE :=2; /循环位数END_VAR梯形图:文本 ST:erg_word:=ROL(in_word, n);(结果:erg_word等于16#0114,/2#0000000

14、100010100)VARin_word : WORD:=16#0045; (* 2#0000000001000101*)erg_word : WORD;n: BYTE :=2; /移动位数END_VAR梯形图:文本 ST:erg_word:=SHR(in_word, n); (结果:erg_word等于2#0000000000010001)梯形图:文本 ST:erg_word:=SHL(in_word,n); (结果:erg_word等于2#0000_0001_0001_0100)16第 3 章节:数据类型转换,合并,拆分3.1 数据类型转换类型转换,参与运算的变量必须是同一数据类型;如果操

15、作数为不同数据类型,必须运用数据转换功能 。(1)在Input Assistant的Conversion Operators能找到数据类型转换运算符,如下图所示:数据类型转换:数据类型转换<DataType>_TO_<DataType>数据合并/拆分:位合并位合并成字节:IL_BoolToByte;位合并成字:IL_BoolToWord;位合并成双字:IL_BoolToDWord;字节/字合并字合并成双字:IL_ConcatWord;字节合并成字:IL_ConcatByte;字节合并成双字:IL_ByteToDWord取 高低字节/字取双字的高字:IL_HighWord

16、:取双字的低字:IL_LowWord:取字的高字节:IL_HighByte:取字的低字节:IL_LowByte:字节/字/双字 拆分为位 bit字节拆分为位 bit:IL_ByteToBool字拆分为位 bit:IL_WordToBool双字拆分为位 bit:IL_DWordToBool双字 拆分为 字节IL_DWordToByte梯形图:文本 ST:erg_word:=ROR(in_word, n);(结果:erg_word等于16#4011,/2#0100000000010001)17(2)<DataType>_TO_<DataType>数据类型转换如:(3)转换例

17、子:指令转换前数据转换后数据说明INT_TO_BOOL-1TRUE除 0 外全都转换 TRUE。<DataType>_TO_INT:梯形图:文本 ST:i:= REAL_TO_INT(1.5); 或 i:=TO_INT(1.5); (结果:i 等于2)<DataType>_TO_BOOL:梯形图:文本 ST:b1:=TO_BOOL(in1) ; 或 b1:=INT_TO_BOOL(in1);(结果:in1不等于0,b1是TRUE;in1等于0,b1是FALSE) b2:=TO_BOOL(by1); 或 b2:=BYTE_TO_BOOL(by1);(结果:by1不等于0,

18、b2是TRUE;by1等于0,b2是FALSE)183.2 数据合并,拆分(1)在Input Assistant的Module Calls栏目里,在 RIL_Utilities库里能找到对应的Function,如下图所示:WORD_TO_BOOL2TRUE除 0 外为 TRUE。bit0 不移动。INT_TO_SINT-400112只移动重叠的数据大小部分(16#FE70)(16#70)TIME_TO_DWORDT#10s10000按毫秒转换REAL_TO_WORD1.52以四舍五入转换REAL_TO_BOOL0.001TRUE若不是 0,则为 TRUEDATE_TO_STRINGD#2013

19、-2-13D#2013-02-13字符串用围住INT_TO_WORD-165535INT_TO_DINT-1-1若是带符号的类型,彼此继承符号19(2)位 bit 合并:位合并成字节: IL_BoolToByte;位合并成字:IL_BoolToWord;位合并成双字:IL_BoolToDWord;如:位合并成字节梯形图:20(3) 字节合并,字合并:字合并成双字:IL_ConcatWord;字节合并成字:IL_ConcatByte;字节合并成双字:IL_ByteToDWord如 :梯形图:文本 ST:Dword_0:=IL_ConcatWord(HighWord:=Hword_0 , LowW

20、ord:=Lword_0 );名称数据类型描述输入变量Bit0BOOL输出字节的 0 位Bit1BOOL输出字节的 1 位Bit2BOOL输出字节的 2 位Bit3BOOL输出字节的 3 位Bit4BOOL输出字节的 4 位Bit5BOOL输出字节的 5 位Bit6BOOL输出字节的 6 位Bit7BOOL输出字节的 7 位返回值IL_BoolToByteBYTE输出字节文本 ST:BY0:=IL_BoolToByte(Bit0:=bY0_0 , Bit1:=bY0_1 , Bit2:=bY0_2 , Bit3:=bY0_3 , Bit4:=bY0_4 , Bit5:=bY0_5 , Bit6

21、:=bY0_6 , Bit7:=bY0_7 );21(4)取 高低字节/字取双字的高字:IL_HighWord:取双字的低字:IL_LowWord:取字的高字节:IL_HighByte:取字的低字节:IL_LowByte:如:()在InputAssistant的Functionblocks栏目里,在RIL_Utilities库里能找到对应的Function Block,如下图所示:梯形图:文本 ST: w0_h:=IL_HighByte(Input:=w0 );名称数据类型描述输入变量InputWORD输入字返回值IL_HighByteBYTE输入字的高字节名称数据类型描述输入变量HighWo

22、rdWORD高字,是输出双字的 word 1LowWordWORD低字,是输出双字的 word 0返回值IL_ConcatWordDWORD输出双字22()字节字,双字拆分为位 bit:如:字节拆分为位 bit:IL_ByteToBoolVARIL_ByteToBool_0: IL_ByteToBool; END_VAR梯形图:字节拆分为位 bit:IL_ByteToBool字拆分为位 bit:IL_WordToBool双字拆分为位 bit:IL_DWordToBool23()双字拆分为字节:IL_DWordToByte;名称数据类型描述输入变量InputDWORD输入双字,将要拆分为 4 个

23、 byte(字节)输出变量Byte0BYTE输入双字的 Byte 0如: VARIL_DWordToByte_0: IL_DWordToByte; END_VAR梯形图:文本 ST:IL_DWordToByte_0( Input:= dw0, Byte0=>dw0_0 , Byte1=>dw0_1 , Byte2=>dw0_2 , Byte3=>dw0_3 );文本 ST: IL_ByteToBool_0(Input:= BY0, Bit0=> bY0_0, Bit1=> bY0_1, Bit2=> bY0_2, Bit3=> bY0_3, Bi

24、t4=>bY0_4 , Bit5=>bY0_5 , Bit6=> bY0_6, Bit7=>bY0_7 );名称数据类型描述输入变量InputBYTE输入字节,将要拆分成 8 个位 bit输出变量Bit0BOOL输入字节的 Bit 0Bit1BOOL输入字节的 Bit 1Bit2BOOL输入字节的 Bit 2Bit3BOOL输入字节的 Bit 3Bit4BOOL输入字节的 Bit 4Bit5BOOL输入字节的 Bit 5Bit6BOOL输入字节的 Bit 6Bit7BOOL输入字节的 Bit 724第 4 章节:上升/下降沿,计数,计时 功能块4.1(1)触发器(边沿检

25、测)R_TRIG上升沿检测功能块的作用当检测到输入的上升沿时,输出 1 个扫描周期的脉冲输入和输出数据类型内容输入(IN)CLKBOOL指输入信号的数据。输出(OUT)QBOOL当检测到 CLK 的上升沿时,输出 1 个扫描周期的脉冲编程语言说明LD/FBD输入:VarBOOL1 输出:VarBOOL2STR_TRIG_0(CLK:= VarBOOL1, Q=> VarBOOL2);注意 R_TRIG_0 的数据类型为 R_TRIG触发器(边沿检测):R_TRIG上升沿检测F_TRIG下降沿检测计数器:CTU增计数器CTD减计数器CTUD增减计数器计时器:TP定时器脉冲TON接通延时定时

26、器TOF断开延时定时器RTC(RunTimeClock)日历时钟名称数据类型描述Byte1BYTE输入双字的 Byte 1Byte2BYTE输入双字的 Byte 2Byte3BYTE输入双字的 Byte 325()计数器CTU增计数器功能块的作用当检测到输入 CU 的上升沿时进行增计数,达到设定的目标值时将输出置 TRUE。输入和输出作用数据类型内容输入(IN)CU计数器输入BOOL输入增计数(上升沿)RESET复位信号BOOL复位信号(TRUE 时将 CV 复位为 0)PV目标值WORD指定 Q 变成 TRUE 的计数器目标值输出(OUT)Q计数器输出BOOLCVPV 时输出 TRUECV计

27、数值WORD初始值为 0。检测到 CU 的上升沿时加 1。(上限为 65,535) RESET 变成 TRUE 时复位为 0。编程语言说明LD/FBD输入:VarBOOL1, VarBOOL2, VarInt1 输出:VarBOOL3, VarInt2STCTU_0(CU:= VarBOOL1,F_TRIG下降沿检测功能块的作用当检测到输入的下降沿时,输出 1 个扫描周期的脉冲输入和输出数据类型内容输入(IN)CLKBOOL指输入信号的数据。输出(OUT)QBOOL当检测到 CLK 的下降沿时,输出 1 个扫描周期的脉冲编程语言说明LD/FBD输入:VarBOOL1 输出:VarBOOL2ST

28、F_TRIG_0(CLK:= VarBOOL1, Q=> VarBOOL2);注意 F_TRIG_0 的数据类型为 F_TRIG26CTUD增减计数器功能块的作用在输入 CU 的上升沿时进行增计数,在输入 CD 的上升沿时进行减计数。当计数值到达目标值时,QU 输出 TRUE;当计数值到达 0 时,QD 输出 TRUE。输入和输出作用数据类型内容CTD减计数器功能块的作用当检测到输入 CD 的上升沿时进行减计数,达到 0 时将输出置 TRUE。输入和输出作用数据类型内容输入(IN)CD计数器输入BOOL输入减计数(上升沿)LOAD加载信号BOOL加载信号(TRUE 时将 CV 变成预设值

29、 PV)PV预设值WORD指定计数器的初始值输出(OUT)Q计数器输出BOOLCV=0 时输出 TRUECV计数值WORD初始值为 0。检测到 CD 的上升沿时减 1。(下限为 0) 当 LOAD 变成 TRUE 时,设定预设值 PV。编程语言说明LD/FBD输入:VarBOOL1, VarBOOL2, VarInt1 输出:VarBOOL3, VarInt2STCTD_0(CD:= VarBOOL1, LOAD:= VarBOOL2,PV:= VarInt1, Q=> VarBOOL3,CV=> VarInt2);注意 CTD_0 的数据类型为 CTDRESET:= VarBOO

30、L2,PV:= VarInt1, Q=> VarBOOL3,CV=> VarInt2);注意 CTU_0 的数据类型为 CTU27()计时器TP定时器脉冲功能块的作用当检测到输入上升沿时,输出指定时间的脉冲。即使在脉冲输出中检测到输入上升沿,也被忽略。输入(IN)CU增计数输入BOOL输入增计数(上升沿)CD减计数输入BOOL输入减计数(上升沿)RESET复位信号BOOL复位信号(TRUE 时 CV 变成 0)LOAD加载信号BOOL加载信号(TRUE 时将 CV 变成目标值 PV)PV目标值WORD指定计数器的目标值输出(OUT)QU增计数器输出BOOLCVPV 时输出 TRUE

31、QD减计数器输出BOOLCV=0 时输出 TRUECV计数值WORD初始值为 0。当检测到 CU 的上升沿时加 1。(上限为65535)当检测到 CD 的上升沿时减 1。(下限为 0) 当 RESET 变为 TRUE 时复位为 0。当 LOAD 变成 TRUE 时,设定目标值 PV。(如果 RESET 和 LOAD 均为 TRUE,RESET 优先, 即 CV=0)编程语言说明LD/FBD输入:VarBOOL1, VarBOOL2, VarBOOL3,VarBOOL4, VarInt1输出:VarBOOL5, VarBOOL6, VarInt2STCTUD_0(CU:= VarBOOL1, C

32、D:= VarBOOL2, RESET:= VarBOOL3, LOAD:= VarBOOL4,PV:= VarInt1, QU=> VarBOOL5, QD=> VarBOOL6,CV=> VarInt2);注意 CTUD_0 的数据类型为 CTUD28TON接通延时定时器功能块的作用输入变成 TRUE 并经过指定的时间后将输出置于TRUE。输入和输出作用数据类型内容输入(IN)IN定时器输入BOOLTRUE:定时器起动指示, FALSE:定时器复位指示PT预设时间TIME指定自定时器起动至 Q 变成 TRUE 的时间。输出(OUT)Q定时器输出BOOL当经过的时间(ET)

33、到达预设时间(PT)时,输出TRUE。当 IN 变成 FALSE 时,输出 FALSE。ET经过的时间TIME定时器起动后,经过的时间以豪秒更新。到达预设时间(PT)时停止更新。当 IN 变成 FALSE 时,复位为 0。编程语言说明LD/FBD输入和输出作用数据类型内容输入(IN)IN定时器输入BOOLTRUE:定时器启动指示,FALSE:定时器复位指示但是,Q 在 TRUE 期间(自定时器起动至经过的时间(ET)到达预设时间(PT)被忽 略)PT预设时间TIME指定 Q 保持 TRUE 的时间。输出(OUT)Q定时器输出BOOL定时器起动时输出 TRUE。经过的时间(ET)到达预设时间(P

34、T)时输出 FALSE。ET经过的时间TIME定时器起动后,经过的时间以豪秒更新。到达预设时间(PT)时停止更新。到达预设时间(PT)后,当 IN 变成 FALSE 时复位为 0。编程语言说明LD/FBD输入:VarBOOL1, T#5s输出:VarBOOL2, VarTimeCurSTTP_0(IN:= VarBOOL1, PT:= T#5S,Q=> VarBOOL2,ET=> VarTimeCur); 注意 TP_0 的数据类型为 TP29RTC(RunTimeClock)日历时钟TOF断开延时定时器功能块的作用输入变成 FALSE 并经过指定的时间后将输出置于FALSE。输入

35、和输出作用数据类型内容输入(IN)IN定时器输入BOOLTRUE:定时器复位指示, FALSE:定时器起动指示PT预设时间TIME指定自定时器起动至 Q 变成 FALSE 的时间。输出(OUT)Q定时器输出BOOL当经过的时间(ET)到达预设时间(PT)时,输出 FALSE。当 IN 变成 TRUE 时,输出 TRUE。ET经过的时间TIME定时器起动后,经过的时间以豪秒更新。到达预设时间(PT)时停止更新。当 IN 变成 TRUE 时,复位为 0。编程语言说明LD/FBD输入:VarBOOL1, T#5s输出:VarBOOL2, VarTimeCurSTTOF_0(IN:= VarBOOL1

36、, PT:= T#5S,Q=> VarBOOL2,ET=> VarTimeCur); 注意 TOF _0 的数据类型为 TOF输入:VarBOOL1, T#5s输出:VarBOOL2, VarTimeCurSTTON_0(IN:= VarBOOL1, PT:= T#5S, Q=> VarBOOL2,ET=> VarTimeCur); 注意 TON _0 的数据类型为 TON30第 5 章节:文本指令5.1 (1)条件语句 IFIF(条件1)THEN(指令1) ELSIF(条件2)THEN(指令2) ELSE文本指令:条件语句 IF条件语句 CASE循环语句 FOR循环语

37、句 WHILE跳出语句 RETURN功能块的作用当 EN 为 TRUE 时,输出的 CDT 时间将从设置的 PDT 时间开始以秒为继续计时。当 EN 为 FALSE 时,CDT 的值为 DT#1970- 01-01-00:00:00。输入和输出作用数据类型内容输入(IN)EN定时器输入BOOL当 EN 为 TRUE 时,输出的 CDT 时间将从设置的 PDT 时间开始以秒为继续计时。当 EN 为 FALSE 时,CDT 的值为 DT#1970- 01-01-00:00:00。PDT预设时间DATE_AND_TIME指定的输入日期和时间。输出(OUT)Q定时器输出BOOL当 CDT 计时时为 T

38、RUECDT经过的时间DATE_AND_TIME在设置的 PDT 时间的基础上加上从 EN 为TRUE 时经过的时间。编程语言说明LD/FBD输入:VarBOOL1, DT#2018-03-30- 14:00:00输出:VarBOOL2, VarTimeCurSTRTC_0(IN:= VarBOOL1,PT:= DT#2018-03-30-14:00:00, Q=> VarBOOL2,ET=> VarTimeCur); 注意 RTC _0 的数据类型为 RTC31(指令3 END_IF;(当条件 1变成 TRUE 时,执行指令 1;除此以外,当条件 2变成 TRUE 时,执行指令

39、2;除此以外,执行指令 3)如:(2)条件语句 CASECASE(变量)OF值1:(指令1) 值2:(指令2) ELSE(指令3) END_CASE;(如果变量的值是值 1,则执行指令 1;值 2,则执行指令 2;除此以外执行指令 3)如:(3)循环语句 FORFOR(变量):=(值1)TO(值2)BY(值3)(指令) END_FOR;DO(值1:初始值,值2:最后值;值3:増量)32如:(4)循环语句 WHILEWHILE(条件)DO(指令) END_WHILE;(只要条件成立,反复执行)如:(5)跳出语句 RETURN执行后跳出POU如:第 6 章节PLC_OPEN 功能块- 运动功能块6

40、.1 在Input Assistant的Functionblocks栏目里,在ML_PLCOPEN库里能找到对应的功能块,如下图所示:PLC_OPEN 运动功能块MC_Power轴使能指令MB_Home回零MC_MoveVelocity速度MC_MoveAbsolute绝对方式MC_MoveRelative相对方式MC_Stop停止功能块MC_GearIn速度同步MC_GearOut(速度,位置)同步MB_GearInPos位置同步MC_CamIn凸轮曲线同步MC CamOut凸轮同步脱开,对应于 MC_CamInML_FlexProfile凸轮曲线同步336.2 运动功能块的使用说明(1)M

41、C_Power 轴使能指令实轴功率输出的接通与断开。(在ML_PLCopen库中调用功能块MC_Power。)名称类型描述输入变量EnableBOOL设置为 TRUE, 功能块开始处理输出变量StatusBOOL使能输出状态ErrorBOOL检测到错误 发生时,为 TRUEErrorIDERROR CODE简单的错误代码ErrorIdentERROR STRUCT详细报错代码信息34(定义功能块的输入输出引角,轴的名称使用组态时定义的轴名称。多个轴上使能时,注意区别功能块名称的定义)示例:程序运行后,通过变量激活功能块的输入Enable,电机上使能。如正常上使能,功能块输出 status 将被

42、置 1。如果驱动有错误,使能不被激活,那么功能块输出 error 将被置 1。(2)MB_Home 轴回零相对编码器实轴回零。(在ML_PLCopen库中调用功能块MB_Home。)示例:名称类型描述输入变量ExecuteBOOL开始,上升沿触发有效输入变量输入输出变量DoneBOOL回零完成信号输出,速度为 OActiveBOOL回零激活状态CommandA bortedBOOL耦合被中断,置为 TRUEErrorIDERROR_CODE简单的错误代码ErrorIde ntERROR_STRUCT详细报错代码信息AxisAXIS_REF作用的轴输入输出变量AxisAXIS REF作用的轴35

43、注:绝对值编码器轴的零位设置时,再程序里通过写参数命令来执行,请参考下一章节。(3)MC_MoveVelocity 速度该功能块用于指定轴按定义的速度走连续的运动,对于实轴需要先激活使能MC_Power。可通过激活其他功能块来结束速度。(在ML_PLCopen库中调用功能块MC_MoveVelocity)名称类型描述输入变量ExecuteBOOL开始,上升沿触发有效VelocityREAL指令速度AccelerationREAL度(永远是 +).DecelerationREAL度 (永远是 +).输出变量InVelocityBOOL设定的运行速度达到,置为 TRUEActiveBOOL功能块被

44、正常激活时,Active 置为TRUE,CommandAbortedBOOL当前指令被中断,置为TRUEErrorBOOL检测到错误 发生时,为 TRUEErrorIDERROR_CODE简单的错误代码ErrorIdentERROR_STRUCT详细报错代码信息输入输出变量AxisAXIS_REF作用的轴36示例:程序运行后,由上位给定速度命令值,通过变量激活Execute。同样功能块被正常激活时, Active 被置1,如果报错,那么命令被中断,commandaborted 被置1。输出引角Invelocity 置 1 代表当反馈速度达到指令速度。(4)MC_MoveAbsolute 绝对方

45、式:功能块将位置Position赋给目标位置,并实现移动到目标位置。(在ML_PLCopen库中调用功能块MC_MoveAbsolute)名称类型描述输入变量ExecuteBOOL开始,上升沿触发有效PositionREAL目标位置 (+/-)VelocityREAL速度(永远是 +)AccelerationREAL度(永远是 +)DecelerationREAL度 (永远是 +)输出变量DoneBOOL到达目标位置ActiveBOOL功能块被正常激活时,Active 置为TRUECommandAbortedBOOL当前指令被中断,置为TRUEErrorBOOL检测到错误 发生时,为 TRUE

46、ErrorIDERROR_CODE简单的错误代码ErrorIdentERROR_STRUCT详细报错代码信息输入输出变量AxisAXIS_REF作用的轴37示例:在上使能之后,激活绝对值方式运动的功能块。以下图示例,负载移动到目标位置 10。在还没有到达目标位置时,输出引角 Active置 1。负载移动到目标位置后,输出引角 Done 置 1。(5)MC_MoveRelative 相对方式功能块将距离Distance加上当前反馈的位置,赋值到目标位置,并实现移动到目标位置。(在ML_PLCopen库中调用功能块MC_MoveRelative)38示例:在上使能之后,激活相对值方式运动的功能块。

47、以下图示例,负载正向移动10mm。在还没有到达目标位置时,输出引角Active置1。名称类型描述输入变量ExecuteBOOL开始,上升沿触发有效DistanceREAL相对距离 (+/-)VelocityREAL速度(永远是 +)AccelerationREAL度(永远是 +)DecelerationREAL度 (永远是 +)输出变量DoneBOOL到达目标位置ActiveBOOL功能块被正常激活时,Active 置为 TRUECommandAbortedBOOL当前指令被中断,置为TRUEErrorBOOL检测到错误 发生时,为 TRUEErrorIDERROR_CODE简单的错误代码ErrorIdentERROR_STRUCT详细报错代码信息输入输出变量AxisAXIS_REF作用的轴39负载移动到目标位置后,输出引角Done置1。(6)MC_Stop 停止功能块功能块用于实现轴的停止,让轴到达停止状态。当达到静止状态时,Done信号会输出。(在ML_PLCopen库中调用功能块MC_Stop)名称类型描述输入变量ExecuteBOOL只要"Execut

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论