博世力士樂運動控制器常用編程指令手冊_第1頁
博世力士樂運動控制器常用編程指令手冊_第2頁
博世力士樂運動控制器常用編程指令手冊_第3頁
博世力士樂運動控制器常用編程指令手冊_第4頁
博世力士樂運動控制器常用編程指令手冊_第5頁
已閱讀5頁,還剩117頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1第 1 章節(jié):數(shù)據(jù)類型和變量定義1.1 常用數(shù)據(jù)類型:開關量類型:BOOL整型數(shù)類型:浮點數(shù)類型:字符:CHAR字符串:STRING數(shù)組類型:ARRAY結構體:STRUCT變量類型變量定義如何變量局部變量全局變量輸入/輸出變量常數(shù)變量掉電保持變量掉電保持變量最大數(shù)量2時間數(shù)類型:TIME1.2 變量定義:(1)如何一個變量:變量名稱符號:冒號數(shù)據(jù)類型初始值(可選)符號:分號注釋(可選)(2)局部變量定義:VAR(在 POU 里定義的變量,局部變量只適用于定義所在的 POU 內部)3定義局部變量時選擇:VAR4(3)全局變量:VAR_GLOBAL(在全局變量表GVL 里定義的變量,所有 POU

2、 都可以調用)定義全局變量時選擇:VAR_GLOBAL5(4)輸入變量:VAR_INPUT輸出變量:VAR_OUTPUT輸入輸出變量:VAR_IN_OUT(輸入/輸出變量多用于功能塊 FB,如下圖示例:)(5)常數(shù)變量 CONSTANT(固定值,不可更改)局部常數(shù)變量:VAR_CONSTANT全局常數(shù)變量:VAR_GLOBAL CONSTANT6(6)掉電保持變量 RETAIN /PERSISTENT:VAR RETAIN(局部變量)VAR_GLOBAL RETAIN(全局變量)(7)下圖列出了普通變量和保持變量的區(qū)別(x表示數(shù)值不變,- 表示數(shù)值會被清掉):掉電保持 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 章節(jié):基礎運算符.1 常用的運算(1)在Input Assistant的Keywords能找到常用的運算符,如下圖所示:LD 梯形圖里調出Input Assistant菜單的方法如下:(在一行的左側空白處,鼠標右擊)數(shù)據(jù)位處理符:NOT求反AND與OR或XOR異

5、或SHL操作數(shù)邏輯左移位SHR操作數(shù)邏輯右移位ROL左循環(huán)ROR右循環(huán)比較符:GT大于LT小于LE小于或等于GE大于或等于EQ等于NE不等于基礎數(shù)據(jù)運算符:MOVE賦值ADD加法SUB減法MUL乘法DIV除法TRUNC取整SQRT開平方EXPT次方MAX取最大值MIN取最小值LIMIT上下限制ABS絕對值三角函數(shù)三角函數(shù)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)三角函數(shù):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 操作數(shù)邏輯左移位:(BYTE, WORD, DWORD,LWORD類型的變量可用)VARin_word : WORD:=16#0045; (* 2#0000_0000_0100_0101*)erg_word : WORD;n: BYTE :=2; /移動位數(shù)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 操作數(shù)邏輯右移位(BYTE, WORD, DWORD,LWORD類型的變量可用)(7)ROL 左循環(huán)(BYTE, WORD, DWORD,LWORD類型

13、的變量可用)(8)ROR 右循環(huán)(BYTE, WORD, DWORD,LWORD類型的變量可用)VARin_word : WORD:=16#0045; (* 2#0000000001000101*)erg_word : WORD;n: BYTE :=2; /循環(huán)位數(shù)END_VARVARin_word : WORD:=16#0045; (* 2#0000000001000101*)erg_word : WORD;n: BYTE :=2; /循環(huán)位數(shù)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; /移動位數(shù)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 章節(jié):數(shù)據(jù)類型轉換,合并,拆分3.1 數(shù)據(jù)類型轉換類型轉換,參與運算的變量必須是同一數(shù)據(jù)類型;如果操

15、作數(shù)為不同數(shù)據(jù)類型,必須運用數(shù)據(jù)轉換功能 。(1)在Input Assistant的Conversion Operators能找到數(shù)據(jù)類型轉換運算符,如下圖所示:數(shù)據(jù)類型轉換:數(shù)據(jù)類型轉換<DataType>_TO_<DataType>數(shù)據(jù)合并/拆分:位合并位合并成字節(jié):IL_BoolToByte;位合并成字:IL_BoolToWord;位合并成雙字:IL_BoolToDWord;字節(jié)/字合并字合并成雙字:IL_ConcatWord;字節(jié)合并成字:IL_ConcatByte;字節(jié)合并成雙字:IL_ByteToDWord取 高低字節(jié)/字取雙字的高字:IL_HighWord

16、:取雙字的低字:IL_LowWord:取字的高字節(jié):IL_HighByte:取字的低字節(jié):IL_LowByte:字節(jié)/字/雙字 拆分為位 bit字節(jié)拆分為位 bit:IL_ByteToBool字拆分為位 bit:IL_WordToBool雙字拆分為位 bit:IL_DWordToBool雙字 拆分為 字節(jié)IL_DWordToByte梯形圖:文本 ST:erg_word:=ROR(in_word, n);(結果:erg_word等于16#4011,/2#0100000000010001)17(2)<DataType>_TO_<DataType>數(shù)據(jù)類型轉換如:(3)轉換例

17、子:指令轉換前數(shù)據(jù)轉換后數(shù)據(jù)說明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 數(shù)據(jù)合并,拆分(1)在Input Assistant的Module Calls欄目里,在 RIL_Utilities庫里能找到對應的Function,如下圖所示:WORD_TO_BOOL2TRUE除 0 外為 TRUE。bit0 不移動。INT_TO_SINT-400112只移動重疊的數(shù)據(jù)大小部分(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 合并:位合并成字節(jié): IL_BoolToByte;位合并成字:IL_BoolToWord;位合并成雙字:IL_BoolToDWord;如:位合并成字節(jié)梯形圖:20(3) 字節(jié)合并,字合并:字合并成雙字:IL_ConcatWord;字節(jié)合并成字:IL_ConcatByte;字節(jié)合并成雙字:IL_ByteToDWord如 :梯形圖:文本 ST:Dword_0:=IL_ConcatWord(HighWord:=Hword_0 , LowW

20、ord:=Lword_0 );名稱數(shù)據(jù)類型描述輸入變量Bit0BOOL輸出字節(jié)的 0 位Bit1BOOL輸出字節(jié)的 1 位Bit2BOOL輸出字節(jié)的 2 位Bit3BOOL輸出字節(jié)的 3 位Bit4BOOL輸出字節(jié)的 4 位Bit5BOOL輸出字節(jié)的 5 位Bit6BOOL輸出字節(jié)的 6 位Bit7BOOL輸出字節(jié)的 7 位返回值IL_BoolToByteBYTE輸出字節(jié)文本 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)取 高低字節(jié)/字取雙字的高字:IL_HighWord:取雙字的低字:IL_LowWord:取字的高字節(jié):IL_HighByte:取字的低字節(jié):IL_LowByte:如:()在InputAssistant的Functionblocks欄目里,在RIL_Utilities庫里能找到對應的Function Block,如下圖所示:梯形圖:文本 ST: w0_h:=IL_HighByte(Input:=w0 );名稱數(shù)據(jù)類型描述輸入變量InputWORD輸入字返回值IL_HighByteBYTE輸入字的高字節(jié)名稱數(shù)據(jù)類型描述輸入變量HighWo

22、rdWORD高字,是輸出雙字的 word 1LowWordWORD低字,是輸出雙字的 word 0返回值IL_ConcatWordDWORD輸出雙字22()字節(jié)字,雙字拆分為位 bit:如:字節(jié)拆分為位 bit:IL_ByteToBoolVARIL_ByteToBool_0: IL_ByteToBool; END_VAR梯形圖:字節(jié)拆分為位 bit:IL_ByteToBool字拆分為位 bit:IL_WordToBool雙字拆分為位 bit:IL_DWordToBool23()雙字拆分為字節(jié):IL_DWordToByte;名稱數(shù)據(jù)類型描述輸入變量InputDWORD輸入雙字,將要拆分為 4 個

23、 byte(字節(jié))輸出變量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 );名稱數(shù)據(jù)類型描述輸入變量InputBYTE輸入字節(jié),將要拆分成 8 個位 bit輸出變量Bit0BOOL輸入字節(jié)的 Bit 0Bit1BOOL輸入字節(jié)的 Bit 1Bit2BOOL輸入字節(jié)的 Bit 2Bit3BOOL輸入字節(jié)的 Bit 3Bit4BOOL輸入字節(jié)的 Bit 4Bit5BOOL輸入字節(jié)的 Bit 5Bit6BOOL輸入字節(jié)的 Bit 6Bit7BOOL輸入字節(jié)的 Bit 724第 4 章節(jié):上升/下降沿,計數(shù),計時 功能塊4.1(1)觸發(fā)器(邊沿檢

25、測)R_TRIG上升沿檢測功能塊的作用當檢測到輸入的上升沿時,輸出 1 個掃描周期的脈沖輸入和輸出數(shù)據(jù)類型內容輸入(IN)CLKBOOL指輸入信號的數(shù)據(jù)。輸出(OUT)QBOOL當檢測到 CLK 的上升沿時,輸出 1 個掃描周期的脈沖編程語言說明LD/FBD輸入:VarBOOL1 輸出:VarBOOL2STR_TRIG_0(CLK:= VarBOOL1, Q=> VarBOOL2);注意 R_TRIG_0 的數(shù)據(jù)類型為 R_TRIG觸發(fā)器(邊沿檢測):R_TRIG上升沿檢測F_TRIG下降沿檢測計數(shù)器:CTU增計數(shù)器CTD減計數(shù)器CTUD增減計數(shù)器計時器:TP定時器脈沖TON接通延時定時

26、器TOF斷開延時定時器RTC(RunTimeClock)日歷時鐘名稱數(shù)據(jù)類型描述Byte1BYTE輸入雙字的 Byte 1Byte2BYTE輸入雙字的 Byte 2Byte3BYTE輸入雙字的 Byte 325()計數(shù)器CTU增計數(shù)器功能塊的作用當檢測到輸入 CU 的上升沿時進行增計數(shù),達到設定的目標值時將輸出置 TRUE。輸入和輸出作用數(shù)據(jù)類型內容輸入(IN)CU計數(shù)器輸入BOOL輸入增計數(shù)(上升沿)RESET復位信號BOOL復位信號(TRUE 時將 CV 復位為 0)PV目標值WORD指定 Q 變成 TRUE 的計數(shù)器目標值輸出(OUT)Q計數(shù)器輸出BOOLCVPV 時輸出 TRUECV計

27、數(shù)值WORD初始值為 0。檢測到 CU 的上升沿時加 1。(上限為 65,535) RESET 變成 TRUE 時復位為 0。編程語言說明LD/FBD輸入:VarBOOL1, VarBOOL2, VarInt1 輸出:VarBOOL3, VarInt2STCTU_0(CU:= VarBOOL1,F_TRIG下降沿檢測功能塊的作用當檢測到輸入的下降沿時,輸出 1 個掃描周期的脈沖輸入和輸出數(shù)據(jù)類型內容輸入(IN)CLKBOOL指輸入信號的數(shù)據(jù)。輸出(OUT)QBOOL當檢測到 CLK 的下降沿時,輸出 1 個掃描周期的脈沖編程語言說明LD/FBD輸入:VarBOOL1 輸出:VarBOOL2ST

28、F_TRIG_0(CLK:= VarBOOL1, Q=> VarBOOL2);注意 F_TRIG_0 的數(shù)據(jù)類型為 F_TRIG26CTUD增減計數(shù)器功能塊的作用在輸入 CU 的上升沿時進行增計數(shù),在輸入 CD 的上升沿時進行減計數(shù)。當計數(shù)值到達目標值時,QU 輸出 TRUE;當計數(shù)值到達 0 時,QD 輸出 TRUE。輸入和輸出作用數(shù)據(jù)類型內容CTD減計數(shù)器功能塊的作用當檢測到輸入 CD 的上升沿時進行減計數(shù),達到 0 時將輸出置 TRUE。輸入和輸出作用數(shù)據(jù)類型內容輸入(IN)CD計數(shù)器輸入BOOL輸入減計數(shù)(上升沿)LOAD加載信號BOOL加載信號(TRUE 時將 CV 變成預設值

29、 PV)PV預設值WORD指定計數(shù)器的初始值輸出(OUT)Q計數(shù)器輸出BOOLCV=0 時輸出 TRUECV計數(shù)值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 的數(shù)據(jù)類型為 CTDRESET:= VarBOO

30、L2,PV:= VarInt1, Q=> VarBOOL3,CV=> VarInt2);注意 CTU_0 的數(shù)據(jù)類型為 CTU27()計時器TP定時器脈沖功能塊的作用當檢測到輸入上升沿時,輸出指定時間的脈沖。即使在脈沖輸出中檢測到輸入上升沿,也被忽略。輸入(IN)CU增計數(shù)輸入BOOL輸入增計數(shù)(上升沿)CD減計數(shù)輸入BOOL輸入減計數(shù)(上升沿)RESET復位信號BOOL復位信號(TRUE 時 CV 變成 0)LOAD加載信號BOOL加載信號(TRUE 時將 CV 變成目標值 PV)PV目標值WORD指定計數(shù)器的目標值輸出(OUT)QU增計數(shù)器輸出BOOLCVPV 時輸出 TRUE

31、QD減計數(shù)器輸出BOOLCV=0 時輸出 TRUECV計數(shù)值WORD初始值為 0。當檢測到 CU 的上升沿時加 1。(上限為65535)當檢測到 CD 的上升沿時減 1。(下限為 0) 當 RESET 變?yōu)?TRUE 時復位為 0。當 LOAD 變成 TRUE 時,設定目標值 PV。(如果 RESET 和 LOAD 均為 TRUE,RESET 優(yōu)先, 即 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 的數(shù)據(jù)類型為 CTUD28TON接通延時定時器功能塊的作用輸入變成 TRUE 并經過指定的時間后將輸出置于TRUE。輸入和輸出作用數(shù)據(jù)類型內容輸入(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輸入和輸出作用數(shù)據(jù)類型內容輸入(IN)IN定時器輸入BOOLTRUE:定時器啟動指示,F(xiàn)ALSE:定時器復位指示但是,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 的數(shù)據(jù)類型為 TP29RTC(RunTimeClock)日歷時鐘TOF斷開延時定時器功能塊的作用輸入變成 FALSE 并經過指定的時間后將輸出置于FALSE。輸入

35、和輸出作用數(shù)據(jù)類型內容輸入(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 的數(shù)據(jù)類型為 TOF輸入:VarBOOL1, T#5s輸出:VarBOOL2, VarTimeCurSTTON_0(IN:= VarBOOL1, PT:= T#5S, Q=> VarBOOL2,ET=> VarTimeCur); 注意 TON _0 的數(shù)據(jù)類型為 TON30第 5 章節(jié):文本指令5.1 (1)條件語句 IFIF(條件1)THEN(指令1) ELSIF(條件2)THEN(指令2) ELSE文本指令:條件語句 IF條件語句 CASE循環(huán)語句 FOR循環(huán)語

37、句 WHILE跳出語句 RETURN功能塊的作用當 EN 為 TRUE 時,輸出的 CDT 時間將從設置的 PDT 時間開始以秒為繼續(xù)計時。當 EN 為 FALSE 時,CDT 的值為 DT#1970- 01-01-00:00:00。輸入和輸出作用數(shù)據(jù)類型內容輸入(IN)EN定時器輸入BOOL當 EN 為 TRUE 時,輸出的 CDT 時間將從設置的 PDT 時間開始以秒為繼續(xù)計時。當 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 的數(shù)據(jù)類型為 RTC31(指令3 END_IF;(當條件 1變成 TRUE 時,執(zhí)行指令 1;除此以外,當條件 2變成 TRUE 時,執(zhí)行指令

39、2;除此以外,執(zhí)行指令 3)如:(2)條件語句 CASECASE(變量)OF值1:(指令1) 值2:(指令2) ELSE(指令3) END_CASE;(如果變量的值是值 1,則執(zhí)行指令 1;值 2,則執(zhí)行指令 2;除此以外執(zhí)行指令 3)如:(3)循環(huán)語句 FORFOR(變量):=(值1)TO(值2)BY(值3)(指令) END_FOR;DO(值1:初始值,值2:最后值;值3:増量)32如:(4)循環(huán)語句 WHILEWHILE(條件)DO(指令) END_WHILE;(只要條件成立,反復執(zhí)行)如:(5)跳出語句 RETURN執(zhí)行后跳出POU如:第 6 章節(jié)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使能輸出狀態(tài)ErrorBOOL檢測到錯誤 發(fā)生時,為 TRUEErrorIDERROR CODE簡單的錯誤代碼ErrorIdentERROR STRUCT詳細報錯代碼信息34(定義功能塊的輸入輸出引角,軸的名稱使用組態(tài)時定義的軸名稱。多個軸上使能時,注意區(qū)別功能塊名稱的定義)示例:程序運行后,通過變量激活功能塊的輸入Enable,電機上使能。如正常上使能,功能塊輸出 status 將被

42、置 1。如果驅動有錯誤,使能不被激活,那么功能塊輸出 error 將被置 1。(2)MB_Home 軸回零相對編碼器實軸回零。(在ML_PLCopen庫中調用功能塊MB_Home。)示例:名稱類型描述輸入變量ExecuteBOOL開始,上升沿觸發(fā)有效輸入變量輸入輸出變量DoneBOOL回零完成信號輸出,速度為 OActiveBOOL回零激活狀態(tài)CommandA bortedBOOL耦合被中斷,置為 TRUEErrorIDERROR_CODE簡單的錯誤代碼ErrorIde ntERROR_STRUCT詳細報錯代碼信息AxisAXIS_REF作用的軸輸入輸出變量AxisAXIS REF作用的軸35

43、注:絕對值編碼器軸的零位設置時,再程序里通過寫參數(shù)命令來執(zhí)行,請參考下一章節(jié)。(3)MC_MoveVelocity 速度該功能塊用于指定軸按定義的速度走連續(xù)的運動,對于實軸需要先激活使能MC_Power??赏ㄟ^激活其他功能塊來結束速度。(在ML_PLCopen庫中調用功能塊MC_MoveVelocity)名稱類型描述輸入變量ExecuteBOOL開始,上升沿觸發(fā)有效VelocityREAL指令速度AccelerationREAL度(永遠是 +).DecelerationREAL度 (永遠是 +).輸出變量InVelocityBOOL設定的運行速度達到,置為 TRUEActiveBOOL功能塊被

44、正常激活時,Active 置為TRUE,CommandAbortedBOOL當前指令被中斷,置為TRUEErrorBOOL檢測到錯誤 發(fā)生時,為 TRUEErrorIDERROR_CODE簡單的錯誤代碼ErrorIdentERROR_STRUCT詳細報錯代碼信息輸入輸出變量AxisAXIS_REF作用的軸36示例:程序運行后,由上位給定速度命令值,通過變量激活Execute。同樣功能塊被正常激活時, Active 被置1,如果報錯,那么命令被中斷,commandaborted 被置1。輸出引角Invelocity 置 1 代表當反饋速度達到指令速度。(4)MC_MoveAbsolute 絕對方

45、式:功能塊將位置Position賦給目標位置,并實現(xiàn)移動到目標位置。(在ML_PLCopen庫中調用功能塊MC_MoveAbsolute)名稱類型描述輸入變量ExecuteBOOL開始,上升沿觸發(fā)有效PositionREAL目標位置 (+/-)VelocityREAL速度(永遠是 +)AccelerationREAL度(永遠是 +)DecelerationREAL度 (永遠是 +)輸出變量DoneBOOL到達目標位置ActiveBOOL功能塊被正常激活時,Active 置為TRUECommandAbortedBOOL當前指令被中斷,置為TRUEErrorBOOL檢測到錯誤 發(fā)生時,為 TRUE

46、ErrorIDERROR_CODE簡單的錯誤代碼ErrorIdentERROR_STRUCT詳細報錯代碼信息輸入輸出變量AxisAXIS_REF作用的軸37示例:在上使能之后,激活絕對值方式運動的功能塊。以下圖示例,負載移動到目標位置 10。在還沒有到達目標位置時,輸出引角 Active置 1。負載移動到目標位置后,輸出引角 Done 置 1。(5)MC_MoveRelative 相對方式功能塊將距離Distance加上當前反饋的位置,賦值到目標位置,并實現(xiàn)移動到目標位置。(在ML_PLCopen庫中調用功能塊MC_MoveRelative)38示例:在上使能之后,激活相對值方式運動的功能塊。

47、以下圖示例,負載正向移動10mm。在還沒有到達目標位置時,輸出引角Active置1。名稱類型描述輸入變量ExecuteBOOL開始,上升沿觸發(fā)有效DistanceREAL相對距離 (+/-)VelocityREAL速度(永遠是 +)AccelerationREAL度(永遠是 +)DecelerationREAL度 (永遠是 +)輸出變量DoneBOOL到達目標位置ActiveBOOL功能塊被正常激活時,Active 置為 TRUECommandAbortedBOOL當前指令被中斷,置為TRUEErrorBOOL檢測到錯誤 發(fā)生時,為 TRUEErrorIDERROR_CODE簡單的錯誤代碼ErrorIdentERROR_STRUCT詳細報錯代碼信息輸入輸出變量AxisAXIS_REF作用的軸39負載移動到目標位置后,輸出引角Done置1。(6)MC_Stop 停止功能塊功能塊用于實現(xiàn)軸的停止,讓軸到達停止狀態(tài)。當達到靜止狀態(tài)時,Done信號會輸出。(在ML_PLCopen庫中調用功能塊MC_Stop)名稱類型描述輸入變量ExecuteBOOL只要"Execut

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論