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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1第 1 章節(jié):數(shù)據(jù)類(lèi)型和變量定義1.1 常用數(shù)據(jù)類(lèi)型:開(kāi)關(guān)量類(lèi)型:BOOL整型數(shù)類(lèi)型:浮點(diǎn)數(shù)類(lèi)型:字符:CHAR字符串:STRING數(shù)組類(lèi)型:ARRAY結(jié)構(gòu)體:STRUCT變量類(lèi)型變量定義如何變量局部變量全局變量輸入/輸出變量常數(shù)變量掉電保持變量掉電保持變量最大數(shù)量2時(shí)間數(shù)類(lèi)型:TIME1.2 變量定義:(1)如何一個(gè)變量:變量名稱(chēng)符號(hào):冒號(hào)數(shù)據(jù)類(lèi)型初始值(可選)符號(hào):分號(hào)注釋?zhuān)蛇x)(2)局部變量定義:VAR(在 POU 里定義的變量,局部變量只適用于定義所在的 POU 內(nèi)部)3定義局部變量時(shí)選擇:VAR4(3)全局變量:VAR_GLOBAL(在全局變量表GVL 里定義的變量,所有 POU

2、 都可以調(diào)用)定義全局變量時(shí)選擇: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ù)值會(huì)被清掉):掉電保持 Retain 變量的大小

3、不能超過(guò)最大 Retain 變量的范圍:(8)MLD(基于驅(qū)動(dòng)的編程)應(yīng)用時(shí),掉電保持 Retain 變量最大分別是:MPB18VRS/MPB20VRS:492bytes (包括 Persistent 變量, 標(biāo)準(zhǔn)面板)MPC18VRS/MPC20VRS 32KB(包括 Persistent 變量, 高級(jí)面板帶 SD 卡)(9)器(基于 PLC 的編程)應(yīng)用時(shí),掉電保持 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é):基礎(chǔ)運(yùn)算符.1 常用的運(yùn)算(1)在Input Assistant的Keywords能找到常用的運(yùn)算符,如下圖所示:LD 梯形圖里調(diào)出Input Assistant菜單的方法如下:(在一行的左側(cè)空白處,鼠標(biāo)右擊)數(shù)據(jù)位處理符:NOT求反AND與OR或XOR異

5、或SHL操作數(shù)邏輯左移位SHR操作數(shù)邏輯右移位ROL左循環(huán)ROR右循環(huán)比較符:GT大于LT小于LE小于或等于GE大于或等于EQ等于NE不等于基礎(chǔ)數(shù)據(jù)運(yùn)算符:MOVE賦值A(chǔ)DD加法SUB減法MUL乘法DIV除法TRUNC取整SQRT開(kāi)平方EXPT次方MAX取最大值MIN取最小值LIMIT上下限制ABS絕對(duì)值三角函數(shù)三角函數(shù)8ST 文本編程里調(diào)出InputAssistant菜單的方法如下:(空白編輯處,鼠標(biāo)右擊)(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梯形圖里的編寫(xiě):ST 文本里的編寫(xiě): ivar2:= MOVE(ivar1); 或ivar2:= ivar1;10(7)TRUNC 取整:(8)SQRT 開(kāi)平方:(結(jié)果:q 等于 4)(9)EXPT 次方:(結(jié)果:var1 等于 49)(10)MAX 取最大值梯形圖:文本 ST:out1:=MAX(in0,in1);(結(jié)果:如果in0大于in1,out1等于in0,否則out1等于in1)梯形圖:文本 ST: var1 := EXPT(7,2);梯形圖:文本 ST:q:=SQRT(16);梯

7、形圖:文本 ST:diVar:=TRUNC(1.9); (* 結(jié)果: 1 *)diVar:=TRUNC(-1.4); (* 結(jié)果: -1 *)梯形圖:文本 ST:var2:=var1/10;11(11)MIN 取最小值(12)LIMIT 上下限制(13)ABS 絕對(duì)值(14)三角函數(shù):COS梯形圖:文本 ST:rVar1:=COS( 0 ); (結(jié)果:rVar1 為 1.0)SIN梯形圖:文本 ST:rVar1:=SIN(1.570796);(結(jié)果:rVar1 為1.0)梯形圖:文本 ST:var1:=ABS(-2); (結(jié)果:var1 為 2)梯形圖:文本 ST:out1:=LIMIT(iM

8、in,in1,imax);(如果 iMin=0,imax=100: 當(dāng)in1<0,out1=0;當(dāng)100>in1>0,out1=in1; 當(dāng)100<in1,out1=100;)梯形圖:文本 ST:out1:=MIN(in0,in1);(結(jié)果:如果in0小于in1,out1等于in0,否則out1等于in1)122.2 比較(1)GT 大于:(注:bS1 是 bool 量)()LT 小于:(注:bS1 是 bool 量)梯形圖:文本 ST:bS1:=var1>100;( 結(jié)果:var1大于100時(shí),bS1是TRUE; var1小于或等于100, bS1是FALSE)

9、ATAN梯形圖:文本 ST:rVar1:=ATAN ( 0.5 ); (結(jié)果:rVar1為0.4636476)ACOS梯形圖:文本 ST:rVar1:=ACOS( 0.5 ); (結(jié)果:rVar1為1.047198)ASIN梯形圖:文本 ST:rVar1:=ASIN( 0.5 ); (結(jié)果:rVar1為0.5235988)TAN梯形圖:文本 ST:rVar1:=TAN( 0.5 ); (結(jié)果: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;( 結(jié)果:var1小于100時(shí),bS1是TRUE; var1大于或等于100, bS1是FALSE)14(BOOL, BYTE,WORD,DWORD,LWORD類(lèi)型的變量可用)(2)AND與:(BOOL,BYTE,WORD,DWORD,LWORD

11、類(lèi)型的變量可用)(3)OR(BOOL,或: BYTE,WORD,DWORD,LWORD類(lèi)型的變量可用)(4)XOR 異或:(BOOL, BYTE, WORD,DWORD,LWORD類(lèi)型的變量可用)(5)SHL 操作數(shù)邏輯左移位:(BYTE, WORD, DWORD,LWORD類(lèi)型的變量可用)VARin_word : WORD:=16#0045; (* 2#0000_0000_0100_0101*)erg_word : WORD;n: BYTE :=2; /移動(dòng)位數(shù)END_VAR梯形圖:文本 ST:byVar1:= 2#1001_0011 XOR 2#1000_1010;(結(jié)果:byVar1等于

12、2#0001_1001)梯形圖:文本 ST:byVar1:= 2#1001_0011 OR 2#1000_1010; (結(jié)果:byVar1等于2#1001_1011)梯形圖:文本 ST:byVar1:= 2#1001_0011 AND 2#1000_1010; (結(jié)果:byVar1等于2#1000_0010)梯形圖:文本 ST:byVar1:=NOT 2#1001_0011; (結(jié)果:byVar1等于 2#0110_1100)15(6)SHR 操作數(shù)邏輯右移位(BYTE, WORD, DWORD,LWORD類(lèi)型的變量可用)(7)ROL 左循環(huán)(BYTE, WORD, DWORD,LWORD類(lèi)型

13、的變量可用)(8)ROR 右循環(huán)(BYTE, WORD, DWORD,LWORD類(lèi)型的變量可用)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);(結(jié)果:erg_word等于16#0114,/2#0000000

14、100010100)VARin_word : WORD:=16#0045; (* 2#0000000001000101*)erg_word : WORD;n: BYTE :=2; /移動(dòng)位數(shù)END_VAR梯形圖:文本 ST:erg_word:=SHR(in_word, n); (結(jié)果:erg_word等于2#0000000000010001)梯形圖:文本 ST:erg_word:=SHL(in_word,n); (結(jié)果:erg_word等于2#0000_0001_0001_0100)16第 3 章節(jié):數(shù)據(jù)類(lèi)型轉(zhuǎn)換,合并,拆分3.1 數(shù)據(jù)類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換,參與運(yùn)算的變量必須是同一數(shù)據(jù)類(lèi)型;如果操

15、作數(shù)為不同數(shù)據(jù)類(lèi)型,必須運(yùn)用數(shù)據(jù)轉(zhuǎn)換功能 。(1)在Input Assistant的Conversion Operators能找到數(shù)據(jù)類(lèi)型轉(zhuǎn)換運(yùn)算符,如下圖所示:數(shù)據(jù)類(lèi)型轉(zhuǎn)換:數(shù)據(jù)類(lèi)型轉(zhuǎn)換<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);(結(jié)果:erg_word等于16#4011,/2#0100000000010001)17(2)<DataType>_TO_<DataType>數(shù)據(jù)類(lèi)型轉(zhuǎn)換如:(3)轉(zhuǎn)換例

17、子:指令轉(zhuǎn)換前數(shù)據(jù)轉(zhuǎn)換后數(shù)據(jù)說(shuō)明INT_TO_BOOL-1TRUE除 0 外全都轉(zhuǎn)換 TRUE。<DataType>_TO_INT:梯形圖:文本 ST:i:= REAL_TO_INT(1.5); 或 i:=TO_INT(1.5); (結(jié)果:i 等于2)<DataType>_TO_BOOL:梯形圖:文本 ST:b1:=TO_BOOL(in1) ; 或 b1:=INT_TO_BOOL(in1);(結(jié)果:in1不等于0,b1是TRUE;in1等于0,b1是FALSE) b2:=TO_BOOL(by1); 或 b2:=BYTE_TO_BOOL(by1);(結(jié)果:by1不等于0,

18、b2是TRUE;by1等于0,b2是FALSE)183.2 數(shù)據(jù)合并,拆分(1)在Input Assistant的Module Calls欄目里,在 RIL_Utilities庫(kù)里能找到對(duì)應(yīng)的Function,如下圖所示:WORD_TO_BOOL2TRUE除 0 外為 TRUE。bit0 不移動(dòng)。INT_TO_SINT-400112只移動(dòng)重疊的數(shù)據(jù)大小部分(16#FE70)(16#70)TIME_TO_DWORDT#10s10000按毫秒轉(zhuǎn)換REAL_TO_WORD1.52以四舍五入轉(zhuǎn)換REAL_TO_BOOL0.001TRUE若不是 0,則為 TRUEDATE_TO_STRINGD#2013

19、-2-13D#2013-02-13字符串用圍住INT_TO_WORD-165535INT_TO_DINT-1-1若是帶符號(hào)的類(lèi)型,彼此繼承符號(hào)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 );名稱(chēng)數(shù)據(jù)類(lèi)型描述輸入變量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庫(kù)里能找到對(duì)應(yīng)的Function Block,如下圖所示:梯形圖:文本 ST: w0_h:=IL_HighByte(Input:=w0 );名稱(chēng)數(shù)據(jù)類(lèi)型描述輸入變量InputWORD輸入字返回值IL_HighByteBYTE輸入字的高字節(jié)名稱(chēng)數(shù)據(jù)類(lèi)型描述輸入變量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;名稱(chēng)數(shù)據(jù)類(lèi)型描述輸入變量InputDWORD輸入雙字,將要拆分為 4 個(gè)

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 );名稱(chēng)數(shù)據(jù)類(lèi)型描述輸入變量InputBYTE輸入字節(jié),將要拆分成 8 個(gè)位 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é):上升/下降沿,計(jì)數(shù),計(jì)時(shí) 功能塊4.1(1)觸發(fā)器(邊沿檢

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

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

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

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

29、 PV)PV預(yù)設(shè)值WORD指定計(jì)數(shù)器的初始值輸出(OUT)Q計(jì)數(shù)器輸出BOOLCV=0 時(shí)輸出 TRUECV計(jì)數(shù)值WORD初始值為 0。檢測(cè)到 CD 的上升沿時(shí)減 1。(下限為 0) 當(dāng) LOAD 變成 TRUE 時(shí),設(shè)定預(yù)設(shè)值 PV。編程語(yǔ)言說(shuō)明LD/FBD輸入:VarBOOL1, VarBOOL2, VarInt1 輸出:VarBOOL3, VarInt2STCTD_0(CD:= VarBOOL1, LOAD:= VarBOOL2,PV:= VarInt1, Q=> VarBOOL3,CV=> VarInt2);注意 CTD_0 的數(shù)據(jù)類(lèi)型為 CTDRESET:= VarBOO

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

31、QD減計(jì)數(shù)器輸出BOOLCV=0 時(shí)輸出 TRUECV計(jì)數(shù)值WORD初始值為 0。當(dāng)檢測(cè)到 CU 的上升沿時(shí)加 1。(上限為65535)當(dāng)檢測(cè)到 CD 的上升沿時(shí)減 1。(下限為 0) 當(dāng) RESET 變?yōu)?TRUE 時(shí)復(fù)位為 0。當(dāng) LOAD 變成 TRUE 時(shí),設(shè)定目標(biāo)值 PV。(如果 RESET 和 LOAD 均為 TRUE,RESET 優(yōu)先, 即 CV=0)編程語(yǔ)言說(shuō)明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ù)類(lèi)型為 CTUD28TON接通延時(shí)定時(shí)器功能塊的作用輸入變成 TRUE 并經(jīng)過(guò)指定的時(shí)間后將輸出置于TRUE。輸入和輸出作用數(shù)據(jù)類(lèi)型內(nèi)容輸入(IN)IN定時(shí)器輸入BOOLTRUE:定時(shí)器起動(dòng)指示, FALSE:定時(shí)器復(fù)位指示PT預(yù)設(shè)時(shí)間TIME指定自定時(shí)器起動(dòng)至 Q 變成 TRUE 的時(shí)間。輸出(OUT)Q定時(shí)器輸出BOOL當(dāng)經(jīng)過(guò)的時(shí)間(ET)

33、到達(dá)預(yù)設(shè)時(shí)間(PT)時(shí),輸出TRUE。當(dāng) IN 變成 FALSE 時(shí),輸出 FALSE。ET經(jīng)過(guò)的時(shí)間TIME定時(shí)器起動(dòng)后,經(jīng)過(guò)的時(shí)間以豪秒更新。到達(dá)預(yù)設(shè)時(shí)間(PT)時(shí)停止更新。當(dāng) IN 變成 FALSE 時(shí),復(fù)位為 0。編程語(yǔ)言說(shuō)明LD/FBD輸入和輸出作用數(shù)據(jù)類(lèi)型內(nèi)容輸入(IN)IN定時(shí)器輸入BOOLTRUE:定時(shí)器啟動(dòng)指示,F(xiàn)ALSE:定時(shí)器復(fù)位指示但是,Q 在 TRUE 期間(自定時(shí)器起動(dòng)至經(jīng)過(guò)的時(shí)間(ET)到達(dá)預(yù)設(shè)時(shí)間(PT)被忽 略)PT預(yù)設(shè)時(shí)間TIME指定 Q 保持 TRUE 的時(shí)間。輸出(OUT)Q定時(shí)器輸出BOOL定時(shí)器起動(dòng)時(shí)輸出 TRUE。經(jīng)過(guò)的時(shí)間(ET)到達(dá)預(yù)設(shè)時(shí)間(P

34、T)時(shí)輸出 FALSE。ET經(jīng)過(guò)的時(shí)間TIME定時(shí)器起動(dòng)后,經(jīng)過(guò)的時(shí)間以豪秒更新。到達(dá)預(yù)設(shè)時(shí)間(PT)時(shí)停止更新。到達(dá)預(yù)設(shè)時(shí)間(PT)后,當(dāng) IN 變成 FALSE 時(shí)復(fù)位為 0。編程語(yǔ)言說(shuō)明LD/FBD輸入:VarBOOL1, T#5s輸出:VarBOOL2, VarTimeCurSTTP_0(IN:= VarBOOL1, PT:= T#5S,Q=> VarBOOL2,ET=> VarTimeCur); 注意 TP_0 的數(shù)據(jù)類(lèi)型為 TP29RTC(RunTimeClock)日歷時(shí)鐘TOF斷開(kāi)延時(shí)定時(shí)器功能塊的作用輸入變成 FALSE 并經(jīng)過(guò)指定的時(shí)間后將輸出置于FALSE。輸入

35、和輸出作用數(shù)據(jù)類(lèi)型內(nèi)容輸入(IN)IN定時(shí)器輸入BOOLTRUE:定時(shí)器復(fù)位指示, FALSE:定時(shí)器起動(dòng)指示PT預(yù)設(shè)時(shí)間TIME指定自定時(shí)器起動(dòng)至 Q 變成 FALSE 的時(shí)間。輸出(OUT)Q定時(shí)器輸出BOOL當(dāng)經(jīng)過(guò)的時(shí)間(ET)到達(dá)預(yù)設(shè)時(shí)間(PT)時(shí),輸出 FALSE。當(dāng) IN 變成 TRUE 時(shí),輸出 TRUE。ET經(jīng)過(guò)的時(shí)間TIME定時(shí)器起動(dòng)后,經(jīng)過(guò)的時(shí)間以豪秒更新。到達(dá)預(yù)設(shè)時(shí)間(PT)時(shí)停止更新。當(dāng) IN 變成 TRUE 時(shí),復(fù)位為 0。編程語(yǔ)言說(shuō)明LD/FBD輸入:VarBOOL1, T#5s輸出:VarBOOL2, VarTimeCurSTTOF_0(IN:= VarBOOL1

36、, PT:= T#5S,Q=> VarBOOL2,ET=> VarTimeCur); 注意 TOF _0 的數(shù)據(jù)類(lèi)型為 TOF輸入:VarBOOL1, T#5s輸出:VarBOOL2, VarTimeCurSTTON_0(IN:= VarBOOL1, PT:= T#5S, Q=> VarBOOL2,ET=> VarTimeCur); 注意 TON _0 的數(shù)據(jù)類(lèi)型為 TON30第 5 章節(jié):文本指令5.1 (1)條件語(yǔ)句 IFIF(條件1)THEN(指令1) ELSIF(條件2)THEN(指令2) ELSE文本指令:條件語(yǔ)句 IF條件語(yǔ)句 CASE循環(huán)語(yǔ)句 FOR循環(huán)語(yǔ)

37、句 WHILE跳出語(yǔ)句 RETURN功能塊的作用當(dāng) EN 為 TRUE 時(shí),輸出的 CDT 時(shí)間將從設(shè)置的 PDT 時(shí)間開(kāi)始以秒為繼續(xù)計(jì)時(shí)。當(dāng) EN 為 FALSE 時(shí),CDT 的值為 DT#1970- 01-01-00:00:00。輸入和輸出作用數(shù)據(jù)類(lèi)型內(nèi)容輸入(IN)EN定時(shí)器輸入BOOL當(dāng) EN 為 TRUE 時(shí),輸出的 CDT 時(shí)間將從設(shè)置的 PDT 時(shí)間開(kāi)始以秒為繼續(xù)計(jì)時(shí)。當(dāng) EN 為 FALSE 時(shí),CDT 的值為 DT#1970- 01-01-00:00:00。PDT預(yù)設(shè)時(shí)間DATE_AND_TIME指定的輸入日期和時(shí)間。輸出(OUT)Q定時(shí)器輸出BOOL當(dāng) CDT 計(jì)時(shí)時(shí)為 T

38、RUECDT經(jīng)過(guò)的時(shí)間DATE_AND_TIME在設(shè)置的 PDT 時(shí)間的基礎(chǔ)上加上從 EN 為T(mén)RUE 時(shí)經(jīng)過(guò)的時(shí)間。編程語(yǔ)言說(shuō)明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ù)類(lèi)型為 RTC31(指令3 END_IF;(當(dāng)條件 1變成 TRUE 時(shí),執(zhí)行指令 1;除此以外,當(dāng)條件 2變成 TRUE 時(shí),執(zhí)行指令

39、2;除此以外,執(zhí)行指令 3)如:(2)條件語(yǔ)句 CASECASE(變量)OF值1:(指令1) 值2:(指令2) ELSE(指令3) END_CASE;(如果變量的值是值 1,則執(zhí)行指令 1;值 2,則執(zhí)行指令 2;除此以外執(zhí)行指令 3)如:(3)循環(huán)語(yǔ)句 FORFOR(變量):=(值1)TO(值2)BY(值3)(指令) END_FOR;DO(值1:初始值,值2:最后值;值3:増量)32如:(4)循環(huán)語(yǔ)句 WHILEWHILE(條件)DO(指令) END_WHILE;(只要條件成立,反復(fù)執(zhí)行)如:(5)跳出語(yǔ)句 RETURN執(zhí)行后跳出POU如:第 6 章節(jié)PLC_OPEN 功能塊- 運(yùn)動(dòng)功能塊6

40、.1 在Input Assistant的Functionblocks欄目里,在ML_PLCOPEN庫(kù)里能找到對(duì)應(yīng)的功能塊,如下圖所示:PLC_OPEN 運(yùn)動(dòng)功能塊MC_Power軸使能指令MB_Home回零MC_MoveVelocity速度MC_MoveAbsolute絕對(duì)方式MC_MoveRelative相對(duì)方式MC_Stop停止功能塊MC_GearIn速度同步MC_GearOut(速度,位置)同步MB_GearInPos位置同步MC_CamIn凸輪曲線同步MC CamOut凸輪同步脫開(kāi),對(duì)應(yīng)于 MC_CamInML_FlexProfile凸輪曲線同步336.2 運(yùn)動(dòng)功能塊的使用說(shuō)明(1)M

41、C_Power 軸使能指令實(shí)軸功率輸出的接通與斷開(kāi)。(在ML_PLCopen庫(kù)中調(diào)用功能塊MC_Power。)名稱(chēng)類(lèi)型描述輸入變量EnableBOOL設(shè)置為 TRUE, 功能塊開(kāi)始處理輸出變量StatusBOOL使能輸出狀態(tài)ErrorBOOL檢測(cè)到錯(cuò)誤 發(fā)生時(shí),為 TRUEErrorIDERROR CODE簡(jiǎn)單的錯(cuò)誤代碼ErrorIdentERROR STRUCT詳細(xì)報(bào)錯(cuò)代碼信息34(定義功能塊的輸入輸出引角,軸的名稱(chēng)使用組態(tài)時(shí)定義的軸名稱(chēng)。多個(gè)軸上使能時(shí),注意區(qū)別功能塊名稱(chēng)的定義)示例:程序運(yùn)行后,通過(guò)變量激活功能塊的輸入Enable,電機(jī)上使能。如正常上使能,功能塊輸出 status 將被

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

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

44、正常激活時(shí),Active 置為T(mén)RUE,CommandAbortedBOOL當(dāng)前指令被中斷,置為T(mén)RUEErrorBOOL檢測(cè)到錯(cuò)誤 發(fā)生時(shí),為 TRUEErrorIDERROR_CODE簡(jiǎn)單的錯(cuò)誤代碼ErrorIdentERROR_STRUCT詳細(xì)報(bào)錯(cuò)代碼信息輸入輸出變量AxisAXIS_REF作用的軸36示例:程序運(yùn)行后,由上位給定速度命令值,通過(guò)變量激活Execute。同樣功能塊被正常激活時(shí), Active 被置1,如果報(bào)錯(cuò),那么命令被中斷,commandaborted 被置1。輸出引角Invelocity 置 1 代表當(dāng)反饋速度達(dá)到指令速度。(4)MC_MoveAbsolute 絕對(duì)方

45、式:功能塊將位置Position賦給目標(biāo)位置,并實(shí)現(xiàn)移動(dòng)到目標(biāo)位置。(在ML_PLCopen庫(kù)中調(diào)用功能塊MC_MoveAbsolute)名稱(chēng)類(lèi)型描述輸入變量ExecuteBOOL開(kāi)始,上升沿觸發(fā)有效PositionREAL目標(biāo)位置 (+/-)VelocityREAL速度(永遠(yuǎn)是 +)AccelerationREAL度(永遠(yuǎn)是 +)DecelerationREAL度 (永遠(yuǎn)是 +)輸出變量DoneBOOL到達(dá)目標(biāo)位置ActiveBOOL功能塊被正常激活時(shí),Active 置為T(mén)RUECommandAbortedBOOL當(dāng)前指令被中斷,置為T(mén)RUEErrorBOOL檢測(cè)到錯(cuò)誤 發(fā)生時(shí),為 TRUE

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

47、以下圖示例,負(fù)載正向移動(dòng)10mm。在還沒(méi)有到達(dá)目標(biāo)位置時(shí),輸出引角Active置1。名稱(chēng)類(lèi)型描述輸入變量ExecuteBOOL開(kāi)始,上升沿觸發(fā)有效DistanceREAL相對(duì)距離 (+/-)VelocityREAL速度(永遠(yuǎn)是 +)AccelerationREAL度(永遠(yuǎn)是 +)DecelerationREAL度 (永遠(yuǎn)是 +)輸出變量DoneBOOL到達(dá)目標(biāo)位置ActiveBOOL功能塊被正常激活時(shí),Active 置為 TRUECommandAbortedBOOL當(dāng)前指令被中斷,置為T(mén)RUEErrorBOOL檢測(cè)到錯(cuò)誤 發(fā)生時(shí),為 TRUEErrorIDERROR_CODE簡(jiǎn)單的錯(cuò)誤代碼ErrorIdentERROR_STRUCT詳細(xì)報(bào)錯(cuò)代碼信息輸入輸出變量AxisAXIS_REF作用的軸39負(fù)載移動(dòng)到目標(biāo)位置后,輸出引角Done置1。(6)MC_Stop 停止功能塊功能塊用于實(shí)現(xiàn)軸的停止,讓軸到達(dá)停止?fàn)顟B(tài)。當(dāng)達(dá)到靜止?fàn)顟B(tài)時(shí),Done信號(hào)會(huì)輸出。(在ML_PLCopen庫(kù)中調(diào)用功能塊MC_Stop)名稱(chēng)類(lèi)型描述輸入變量ExecuteBOOL只要"Execut

溫馨提示

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

評(píng)論

0/150

提交評(píng)論