一 西門子PLC高速脈沖輸出的幾個概念1 高速脈沖輸出的形式 A 高速脈沖串輸出 PTO : ( Pulse Train Output ) 輸出指定數(shù)量,占空比為50% 的方波脈沖串。 B 寬度可調(diào)脈沖輸出 PWM : ( Pulse Width Modulation ) 輸出數(shù)量不限,占空比可調(diào)的脈沖串信號。 2 高速脈沖輸出端子 西門子S7-200CPU可以提供 2 個高速脈沖發(fā)生器 ● PTO/PWM 發(fā)生器0 的輸出端子是 Q0.0 ● PTO/PWM 發(fā)生器1 的輸出端子是 Q0.1 3 高速脈沖輸出優(yōu)先權(quán) 有PTO/PWM 輸出時,CPU 把輸出端子Q0.0、Q0.1 控制權(quán)交給 PTO/PWM 發(fā)生器,禁止普通邏輯輸出。 輸出映像寄存器 Q 的狀態(tài)會影響PTO/PWM波形的起始電平, 高速脈沖輸出前要先把Q0.0、 Q0.1的狀態(tài)清零。 4 高速脈沖輸出適用機型 輸出高頻脈沖信號時,應(yīng)選用晶體管輸出型 PLC。 二 高速脈沖輸出指令及特殊寄存器1 高速脈沖輸出指令( Pulse ) 指令功能:EN 有一個上升沿時,激活PLS,控制PLC從 Q0.0 或 Q0.1 輸出高速脈沖。 PLS指令可以輸出: ※ 高速脈沖串 PTO ※ 寬度可調(diào)的脈沖信號 PWM 數(shù)據(jù)類型: ※ 操作數(shù)Q0.X:X必須是常數(shù) 0 或 1。 ※ EN:只接通一個掃描周期的短信號。 2 特殊寄存器 每個 PTO/PWM 都有一組配套參數(shù): ● 1個 8位的控制字節(jié) ● 1個 8位的狀態(tài)字節(jié) ● 1個 16位的周期值 ● 1個 16位的脈寬值 ● 1個 32位的脈沖數(shù)量 對于多段 PTO,還有 ● 1個 8位的段字節(jié) ● 1個 16位包絡(luò)表起始地址 這些參數(shù)存放在系統(tǒng)指定的特殊標(biāo)志寄存器中 狀態(tài)字節(jié) PTO 方式下運行時,系統(tǒng)根據(jù)運行狀態(tài)使相應(yīng)位置位。 控制字節(jié) 通過設(shè)置字節(jié)中各控制位,來定義高速脈沖輸出的特性. 控制字節(jié)中各控制位的功能 三 高速脈沖串輸出PTO特點:高速脈沖串輸出(PTO)方式下,只能改變脈沖的周期值和脈沖數(shù)。 1 周期和脈沖數(shù) ●周期:單位:μs或ms。周期值為16位無符號整數(shù)。變化范圍:50~65535 μs或 2~65535 ms。 脈沖數(shù):是一個32位的無符號整數(shù),取值范圍:1~4294967295。 2 高速脈沖串輸出中斷 PTO 方式下,當(dāng)輸出完指定數(shù)量的脈沖后,產(chǎn)生高速脈沖串輸出中斷。 ● PTO/PWM 0 的中斷事件號是19 ● PTO/PWM 1 的中斷事件號是20 高速脈沖串輸出時,CPU自動將PTO空閑位SM66.7(或SM76.7)置1。 3 PTO的種類 PTO方式下,要輸出多段脈沖串時,允許脈沖串排隊。PTO輸出多段脈沖的方式有兩種: ●單段PTO:定義一個脈沖串,輸出一個脈沖串 (特性參數(shù)通過特殊寄存器分別定義) 。 ●多段PTO:集中定義多個脈沖串,按順序輸出多個脈沖串(特性參數(shù)通過包絡(luò)表集中定義) 單段PTO 實現(xiàn)的方法 用指定的特殊標(biāo)志寄存器定義脈沖串特性參數(shù)(每次定義一個脈沖串)。一個脈沖串輸出完成后,產(chǎn)生中斷。在中斷服務(wù)程序中再為下一個脈沖串更新參數(shù),輸出下一個脈沖串。 優(yōu)點: 各脈沖段可以采用不同的時間基準?!蛉秉c:單段PTO輸出多段高速脈沖串時,編程復(fù)雜,且參數(shù)設(shè)置不當(dāng)會造成脈沖串之間的不平滑轉(zhuǎn)換。 多段PTO 操作 多段PTO:集中定義多個脈沖串,并把各段脈沖串的特性參數(shù)按照規(guī)定的格式寫入變量存儲區(qū)用戶指定的緩沖區(qū)中--稱為包絡(luò)表 包絡(luò)表說明: ● 包絡(luò)表由包絡(luò)段數(shù)和各段構(gòu)成。 ● 第一個字節(jié)為需要輸出的脈沖串總段數(shù),范圍:1~255 ; ● 定義一段脈沖串的特性參數(shù)需要8個字節(jié) ※ 2個字節(jié)存放脈沖串的起始周期值 ※ 2個字節(jié)定義脈沖串的周期增量 ※ 4個字節(jié)存放該段脈沖串的脈沖數(shù) 包絡(luò)表中的周期單位可以為 ms 或 μs, 但表中所有周期單位必須一致。 ● 周期增量的計算公式: 多段PTO操作時,需把包絡(luò)表的起始地址裝入標(biāo)志寄存器 SMW168(或SMW178)中。 ● PTO指令執(zhí)行時,當(dāng)前輸出段的段號由系統(tǒng)填入 SMB166 或 SMB176 中。 多段PTO的優(yōu)點: 編程簡單,且在同一段脈沖串中其周期可以均勻改變。 多段 PTO 編程方法及步驟: A. 初始化操作(以PTO/PWM 0為例): a. 將 PTO 的輸出點 Q0.0 復(fù)位; b. 調(diào)用初始化子程序SBR-0,完成下列任務(wù): 設(shè)置控制字節(jié)SMB67 ,按照控制要求按位填寫:如使SMB67=16#A0。 將包絡(luò)表的起始地址寫入 SMW168; ● 填寫包絡(luò)表中各段脈沖串的特性參數(shù); 建立中斷連接:用ATCH指令建立脈沖輸出完成中斷事件與中斷程序的聯(lián)系。當(dāng)PLS指令輸出完指定數(shù)量的脈沖串時,產(chǎn)生中斷。 ● 用ENI全局開放中斷; B. 有啟動信號時,執(zhí)行高速脈沖輸出指令PLS,按順序輸出多段脈沖串。 C. 有停止信號時,停止高速脈沖串輸出。 停止 PTO 輸出的方法 PLS指令一經(jīng)激發(fā),就能完成指定脈沖串的輸出,故要停止PTO輸出,必須先在控制字節(jié)中禁止PTO輸出,且執(zhí)行PLS指令。 多段PTO應(yīng)用實例 已知步進電機的起動頻率為2 kHz(A點),經(jīng)過400個脈沖加速后頻率上升到10 kHz(B點和C點),恒速轉(zhuǎn)動的脈沖數(shù)為4000個,減速過程脈沖數(shù)為200個,頻率降為2 kHz(D點),其頻率特性如圖所示。 解:● 確定脈沖發(fā)生器及工作模式 要求PLC輸出三段串脈沖。故采用多段PTO輸出方式。選擇輸出端為 Q0.0。 ● 填寫控制字節(jié)SMB67:使SMB67=16#A0 將包絡(luò)表首地址裝入SMW168中。 ● 填寫包絡(luò)表。 參數(shù)換算: 起始頻率:2 kHz ,起始周期值:500μs, 運行頻率為10 kHz,運行周期值:100μs。 輸出3段脈沖串,時基取μs,定義三段脈沖串特性參數(shù)的包絡(luò)表為: 中斷連接:高速脈沖輸出完成時,產(chǎn)生中斷事件19,用ATCH指令將與中斷事件與中斷服務(wù)程序INT0連接起來,并全局開中斷(ENI)。 ● 執(zhí)行PLS指令。 采用多段PTO,脈沖串連續(xù)輸出期間,按啟動按鈕I0.0不起作用,不會出現(xiàn)脈沖串重復(fù)排隊輸出的現(xiàn)象,脈沖串能夠按照規(guī)定的順序輸出完后,停止輸出。 四 寬度可調(diào)的脈沖輸出PWM特點: PWM方式下,用戶可以改變脈沖的周期值 和 脈寬值 ,脈沖數(shù)不受限制。 1 周期值和脈寬值 周期值:是一個16位無符號數(shù)據(jù),單位:μs或ms;變化范圍:50~65535μs或2~65535 ms。 脈沖寬度:是一個16位無符號整數(shù),單位:μs或ms;變化范圍是0~65535 μs或ms。即占空比在0%~100%之間變化。 2 PWM 更新方式 ● 同步更新:在改變脈沖周期值和脈寬值時,不改變時間基準。特點:同步更新時,波形的變化發(fā)生在周期的邊緣,輸出波形進行平滑轉(zhuǎn)換。 異步更新:在改變脈沖周期值和脈寬值時,改變時間基準。特點:采用異步更新會使高速脈沖輸出功能被瞬時禁止,這時輸出端交由輸出映像寄存器Q控制,可能使 PWM 的波形不連續(xù),引起被控制設(shè)備的振動。 結(jié)論:改變 PWM 波形的特性時應(yīng)盡量采用同步更新。 3 PWM的編程方法及步驟 A.確定脈沖發(fā)生器: ※ 選擇高速脈沖輸出端(發(fā)生器); ※ 選擇工作模式為PWM。 B. PWM的初始化 a. 將PWM的輸出點(Q0.0或Q0.1)復(fù)位; b. 調(diào)用初始化子程序SBR-0,它所完成的任務(wù): 按位填寫控制字節(jié)(如SMB67):SMB67=16#DB 向SMW68寫入第一個脈沖串的周期值; ●向SMW70寫入第一個脈沖串的脈寬值 ; ●執(zhí)行PLS指令,輸出指定寬度的脈沖信號。修改脈沖串寬度的方法 ● 改寫控制字節(jié)SMB67,將允許改脈寬值位置1 ,其它位不變。 ● 向SMW70寫入新的脈沖寬度值 ● 執(zhí)行PLS,輸出指定寬度的脈沖信號。 PWM 輸出舉例 要求 PWM0的脈沖周期是 T=10000ms,開始時輸出占空比為 10%的脈沖,當(dāng) I0.0=1時,輸出占空比為 50%的脈沖 ,當(dāng) I0.2=1時,停止輸出脈沖。 |
|