PTO功能按照給定的脈沖個(gè)數(shù)和周期輸出一串方波脈沖,占空比為50%。PTO可以產(chǎn)生單段脈沖或通過使用脈沖包絡(luò)產(chǎn)生多段脈沖。必須為其設(shè)定脈沖個(gè)數(shù)和周期(以微秒或毫秒為單位):脈沖個(gè)數(shù):1-4294967295,為32位無符號(hào)數(shù);周期:10~65535us或2-65535ms,為16位無符號(hào)數(shù)。
在設(shè)置脈沖個(gè)數(shù)時(shí),若將脈沖個(gè)數(shù)設(shè)為0,系統(tǒng)會(huì)默認(rèn)為個(gè)數(shù)為1:在設(shè)置脈沖周期時(shí),符號(hào)數(shù)如果周期小于兩個(gè)時(shí)間單位,系統(tǒng)會(huì)默認(rèn)周期為兩個(gè)時(shí)間單位,例如時(shí)間單位為ms,周期設(shè)為1.3ms,系統(tǒng)會(huì)默認(rèn)周期為2ms,另外,如果將周期值設(shè)為奇數(shù)值(如75ms),產(chǎn)生的脈沖波形會(huì)失真。
PTO脈沖課分為單段脈沖串和多段脈沖串,多段脈沖串由多個(gè)單段脈沖串組成。
1、單段脈沖串的產(chǎn)生
要讓Q0.0或Q0.1端子輸出單段脈沖串,須先對(duì)相關(guān)的控制字節(jié)和參數(shù)進(jìn)行設(shè)置,再執(zhí)行高速脈沖輸出PLS指令。
下面是一段用來產(chǎn)生單段脈沖串的程序。在PLC首次掃描時(shí),SM0.1觸點(diǎn)閉合一個(gè)掃描周期,復(fù)位指令將Q0.0輸出映像寄存器(即Q0.0線圈)置0,以便將Q0.0端子用于高速脈沖輸出:當(dāng)I0.1軸點(diǎn)合時(shí),上開沿P觸點(diǎn)接通一個(gè)掃描周期,MOV_B、MOV_W和MOV_ DW依次執(zhí)行,對(duì)高速脈沖發(fā)生器的控制字節(jié)和參數(shù)進(jìn)行設(shè)置,然后執(zhí)行高速脈沖輸出PLS指令,讓高速脈沖發(fā)生器按設(shè)置產(chǎn)生單段PTO脈沖串并從Q0.0端子輸出。在PTO脈沖串輸出期間,如果I0.2觸點(diǎn)閉合,MOV_B、 MOV_ DW依次執(zhí)行,將控制字節(jié)設(shè)為禁止脈沖輸出、脈沖個(gè)數(shù)設(shè)為0,然后執(zhí)行PLS指令,高速脈沖發(fā)生器馬上按新的設(shè)置工作,即停止從Q0.0端子輸出脈沖。單段PTO脈沖串輸出完成后,狀態(tài)位SM66.7會(huì)置1,表示PTO脈沖輸出結(jié)束。
2、單段脈沖串的產(chǎn)生
多段脈沖串有兩種類型:單段管道脈沖串和多段管道脈沖串
(1)單段管道脈沖串
由于控制單元參數(shù)只能對(duì)單段脈沖串產(chǎn)生作用,因此在輸出單段管道脈沖串時(shí),要求執(zhí)行PLS指令產(chǎn)生首段脈沖串后,立即接第二段脈沖串要求刷新控制參數(shù)單元,并再次執(zhí)行PLS串中的每個(gè)脈沖參數(shù)要相同指令,這樣首段脈沖串輸出完成后,會(huì)接著按新的控制參數(shù)輸出第二段脈沖串。單段管道脈沖串的每個(gè)脈沖串可采用不同參數(shù),這樣易出現(xiàn)脈沖串之間連接不平穩(wěn),在輸出多個(gè)參數(shù)不同的脈沖串時(shí),編程也很復(fù)雜。
(2)多段管道脈沖串
多段管道脈沖串也由多個(gè)單段脈沖串組成,每個(gè)單段脈沖串的參數(shù)可以不同,單段脈沖串中的每個(gè)脈沖參數(shù)也可以不同。
① 參數(shù)設(shè)置包絡(luò)表
由于多段管道脈沖串的各個(gè)脈沖串允許有較復(fù)雜的變化,無法用產(chǎn)生單段管道脈沖串的方法來輸出多段管道脈沖串,S7-200PLC采用在變量存儲(chǔ)區(qū)建立一個(gè)包絡(luò)表的方法,由該表來設(shè)置多段管道脈沖串中的各個(gè)脈沖串的參數(shù)。多段管道脈沖串的參數(shù)設(shè)置包絡(luò)表見表1,從包絡(luò)表中可以看出,每段脈沖串的參數(shù)占用8字節(jié),其中2字節(jié)為16位初始周期值,2字節(jié)為16位周期增量值,4字節(jié)為32位脈沖數(shù)值,可以通過編程的方式使脈沖的周期自動(dòng)增減,在周期增量處輸入一個(gè)正值會(huì)增加周期,輸入一個(gè)負(fù)值會(huì)減少周期,輸入0將不改變周期。
在多段管道模式下,系統(tǒng)仍使用特殊存儲(chǔ)器區(qū)的相應(yīng)控制字節(jié)和狀態(tài)位,每個(gè)脈沖串的參數(shù)則從包絡(luò)表的變量存儲(chǔ)器區(qū)讀出,在多段管道編程時(shí),必須將包絡(luò)表的變量存儲(chǔ)器起始地址(即包絡(luò)表中的n值)存入SMW168或SMW178中,在包絡(luò)表中的所有周期值必須使用同一個(gè)時(shí)間單位,而且在運(yùn)行時(shí)不能改變包絡(luò)表中的內(nèi)容,執(zhí)行PLS指令來啟動(dòng)多段管道操作。
② 多段管道脈沖串的應(yīng)用舉例
多段管道脈沖串常用于步進(jìn)電動(dòng)機(jī)的控制。圖2是一個(gè)步進(jìn)電動(dòng)機(jī)的控制包絡(luò)線,包絡(luò)線分3段:第1段(AB段)為加速運(yùn)行,電動(dòng)機(jī)的起始頻率為2kHz(周期為500s),終止頻率為10kHz(周期為100us),要求運(yùn)行脈沖數(shù)目為200個(gè):第2段(BC段)為恒速運(yùn)行,電動(dòng)機(jī)的起始和終止頻率均為10kHz(周期為100s),要求運(yùn)行脈沖數(shù)目為3600個(gè);第3段(CD段)為減速運(yùn)行,電動(dòng)機(jī)的起始頻率為10kHz(周期為100us),終止頻率為2kHz(500us),要求運(yùn)行脈沖數(shù)目為200個(gè)。
根據(jù)PLC程序步進(jìn)電動(dòng)機(jī)的控制包絡(luò)線列出的包絡(luò)表
根據(jù)包絡(luò)表可編寫出步進(jìn)電動(dòng)機(jī)的控制程序,該程序由主程序、SBR_0子程序和NT_0中斷程序組成。
▲主程序
▲SBR_0子程序
▲INT_0中斷程序
在主程序中,PLC首次掃描時(shí)SM0。觸點(diǎn)閉合一個(gè)掃描周期,先將Q0.0端子輸出映像寄存器置0,以便將該端子用于高速脈沖輸出,然后執(zhí)行子程序調(diào)用指令轉(zhuǎn)入SBR0子程序。在SBR0子程序中,網(wǎng)絡(luò)1用于設(shè)置多段管道脈沖串的參數(shù)包絡(luò)表(段數(shù)、第1段參數(shù)、第2段參數(shù)和第3段參數(shù)),網(wǎng)絡(luò)2先設(shè)置脈沖輸出的控制字節(jié),并將包絡(luò)表起始單元地址號(hào)送入SMW168單元,然后用中斷連接指令將NT0中斷程序與中斷事件19(PTO0脈沖串輸出完成產(chǎn)生中斷)連接起來,再用EN指令允許所有的中斷,最后執(zhí)行PLS指令,讓高速脈沖發(fā)生器按設(shè)定的控制方式和參數(shù)(由包絡(luò)表設(shè)置)工作,即從Q0.0端子輸出多段管道脈沖串,去驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)按加速、恒速和減速順序運(yùn)行。當(dāng)Q00端子的多管道PTO脈沖輸出完成后,馬上會(huì)向系統(tǒng)發(fā)出中斷請(qǐng)求,系統(tǒng)則執(zhí)行DNT0中斷程序,Q10線圈得電。
轉(zhuǎn)載請(qǐng)注明來源