西門子PLS 指令編程步驟
使用 PLS 指令編程, 以實(shí)現(xiàn) PTO 輸出, 可按照以下步驟編程:
第一步:設(shè)置 PTO 控制字節(jié),以確定使用單段操作或多段操作,是否更新頻率或脈沖數(shù);
第二步:如果是單段操作,裝載或更新頻率值,脈沖數(shù);如果是多段操作,裝載包絡(luò)表起始地址以及包絡(luò)表每段起始頻率值,結(jié)束頻率值,脈沖數(shù);
第三步:設(shè)置 PLS 指令通道, 以確定是 Q0.0、Q0.1 或 Q0.3 PTO 輸出;
第四步:沿觸發(fā) PLS 指令。
PLS 指令讀取存儲(chǔ)于指定 SM 存儲(chǔ)單元的數(shù)據(jù),并相應(yīng)地編程 PTO 生成器。
SMB67 控制 PTO0 ,SMB77 控制 PTO1 ,SMB567 控制 PTO2 。PTO 控制寄存器的 SM 單元表介紹了用于控制 PTO 操作的寄存器。可快速參考該表來(lái)確定在 PTO/PWM 控制寄存器中放置什么值才能調(diào)用想要的操作。
可通過(guò)修改 SM 區(qū)域(包括控制字節(jié))中的單元,然后執(zhí)行 PLS 指令,來(lái)改變 PTO 的特性。
任何時(shí)候都可通過(guò)向 PTO 控制字節(jié)(SM67.7、SM77.7 或 SM567.7)使能位寫入 0,然后執(zhí)行 PLS 指令,來(lái)實(shí)現(xiàn)禁止 PTO輸出 。輸出點(diǎn)將立即恢復(fù)為過(guò)程映像寄存器控制。
PTO 控制字節(jié)
PTO 產(chǎn)生單段脈沖串或者多段脈沖串,需先組態(tài) PTO 控制字節(jié)(SMB67、SMB77 和 SMB567)。
PTO/PWM 控制寄存器的 SM 單元如下表 1 所示:
Q0.0 | Q0.1 | Q0.3 |
控制位 |
SM67.0 | SM77.0 | SM567.0 |
PTO/PWM 更新頻率/周期時(shí)間:
|
SM67.1 | SM77.1 | SM567.1 |
PWM 更新脈沖寬度時(shí)間:
|
SM67.2 | SM77.2 | SM567.2 |
PTO 更新脈沖計(jì)數(shù)值:
|
SM67.3 | SM77.3 | SM567.3 |
PWM 時(shí)基:
|
SM67.4 | SM77.4 | SM567.4 |
保留 |
SM67.5 | SM77.5 | SM567.5 |
PTO 單/多段操作:
|
SM67.6 | SM77.6 | SM567.6 |
PTO/PWM 模式選擇:
|
SM67.7 | SM77.7 | SM567.7 |
PWM 使能:
|
表 1 .PTO/PWM 控制寄存器的 SM 單元
PTO 控制字節(jié)(SMB67、SMB77 和 SMB567), 如下表 2 所示:
控制寄存器 (十六進(jìn)制值) |
啟用 | 選擇模式 | PTO 段操作 | 時(shí)基 | 脈沖計(jì)數(shù) |
頻率 |
16#C0 |
是 | PTO | 單段 | 頻率 HZ | ||
16#C1 | 是 | PTO | 單段 | 頻率 HZ | 更新頻率 | |
16#C4 | 是 | PTO | 單段 | 頻率 HZ | 更新 | |
16#C5 | 是 | PTO | 單段 | 頻率 HZ | 更新 | 更新頻率 |
16#E0 | 是 | PTO | 多段 | 頻率 HZ |
表 2. 十六進(jìn)制值組態(tài) PTO 控制字節(jié)
除組態(tài) PTO 控制字節(jié),應(yīng)該在執(zhí)行 PLS 指令前裝載或更新脈沖頻率,脈沖數(shù)。
如果使用多段脈沖串,在執(zhí)行PLS 指令前還需要裝入包絡(luò)表的起始偏移量和包絡(luò)表的值。 如下表 3 所示:
Q0.0 | Q0.1 | Q0.3 | 其它控制寄存器 |
SMW68 | SMW78 | SMW568 | PTO 頻率:1 到 65,535 Hz (PTO) |
SMD72 | SMD82 | SMD572 | PTO 脈沖計(jì)數(shù)值:1 到 2,147,483,647 |
SMW168 | SMW178 | SMW578 |
包絡(luò)表的起始單元(相對(duì) V0 的字節(jié)偏移) 僅限多段 PTO 操作 |
表 3. 其它控制寄存器
PTO 狀態(tài)字節(jié)
可通過(guò)監(jiān)視 PTO 狀態(tài)字節(jié)(SMB66、SMB76 和 SMB566) , 診斷 PTO 輸出狀態(tài)。 如下表 4 所示:
Q0.0 | Q0.1 | Q0.3 | 狀態(tài)位 |
SM66.4 |
SM76.4 |
SM566.4 |
PTO 增量計(jì)算錯(cuò)誤(因添加錯(cuò)誤導(dǎo)致)
|
SM66.5 |
SM76.5 |
SM566.5 |
PTO 包絡(luò)被禁用(因用戶指令導(dǎo)致):
|
SM66.6 |
SM76.6 |
SM566.6 |
PTO/PWM 管道溢出/下溢:
|
SM66.7 |
SM76.7 |
SM566.7 |
PTO 空閑:
|
表 4. PTO 狀態(tài)位
單段管道化頻率的上限為 65,535 Hz。
在單段管道化中,用戶可通過(guò) SM 更新下一脈沖串的頻率或脈沖數(shù)。更新后,再次執(zhí)行 PLS 指令。
PTO 功能在單段管道中保留第二個(gè)脈沖串的屬性,直到其完成了第一個(gè)脈沖串。在第一個(gè)脈沖串完成時(shí),開始輸出第二個(gè)波形,然后可在管道中存儲(chǔ)一個(gè)新脈沖串設(shè)置。之后重復(fù)此過(guò)程。
PTO 在單段管道中一次只能存儲(chǔ)一個(gè)條目。若在管道仍填滿時(shí)裝載新設(shè)置,PTO 溢出位置位且指令被忽略。
PTO 脈沖的單段管道化例程
S7-200 SMART CPU Q0.0 以 100 HZ 頻率值輸出 1000 個(gè)脈沖。
注意:以上例程僅為示例程序,請(qǐng)勿直接用于測(cè)試!
測(cè)試前,用戶務(wù)必使用晶體管輸出的 S7-200 SMART CPU,并根據(jù)實(shí)際使用需求修改程序中的頻率值和脈沖數(shù)!
此程序的作者和擁有者對(duì)于該程序的功能性和兼容性不負(fù)任何責(zé)任。使用該程序的風(fēng)險(xiǎn)完全由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯(cuò)誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務(wù)部門。
PTO 單段脈沖串排隊(duì)
PTO 脈沖的單段只能有一個(gè)脈沖串排隊(duì),PTO 對(duì)溢出的脈沖串不響應(yīng),PTO 溢出位置 1。 如果希望檢測(cè)后續(xù)溢出,溢出位置位后只能手動(dòng)復(fù)位或 CPU STP 到 RUN。
PTO 生成器自動(dòng)將頻率從起始頻率線性提高或降低到結(jié)束頻率,多段管道化頻率的上限為 100,000 Hz。
對(duì)于多段脈沖串操作,必須裝載包絡(luò)表的起始偏移量(SMW168、SMW178 或 SMW578)和包絡(luò)表值。
S7-200 SMART 從 V 存儲(chǔ)器的包絡(luò)表中自動(dòng)讀取每個(gè)脈沖串段的特性,執(zhí)行 PLS 指令將啟動(dòng)多段操作。
在脈沖數(shù)量達(dá)到指定的脈沖計(jì)數(shù)時(shí),立即裝載下一個(gè) PTO 段,該操作將一直重復(fù)到包絡(luò)結(jié)束。
每個(gè)脈沖包絡(luò)最多可由 255 段組成,每段對(duì)應(yīng)一個(gè)加速、運(yùn)行或減速操作。
在 SMB166、SMB176 或 SMB576 中可監(jiān)視 PTO 包絡(luò)當(dāng)前有效段的編號(hào)。
多段 PTO 每段條目長(zhǎng) 12 字節(jié),由 32 位起始頻率、32 位結(jié)束頻率和 32 位脈沖計(jì)數(shù)值組成。
多段 PTO 操作的包絡(luò)表格式如下:
PTO 多段管道化例程
使用帶有脈沖包絡(luò)的 PTO 通過(guò)簡(jiǎn)單的加速、運(yùn)行和減速順序來(lái)控制步進(jìn)電機(jī)。
通過(guò)定義脈沖包絡(luò)可創(chuàng)建更復(fù)雜的順序。
右圖說(shuō)明了生成輸出波形所需的采樣包絡(luò)表值:
● 段 1:加速步進(jìn)電機(jī)
● 段 2:以恒定轉(zhuǎn)速運(yùn)行電機(jī)
● 段 3:使電機(jī)減速
在本例中,要達(dá)到期望的電機(jī)轉(zhuǎn)數(shù),PTO 生成器需要以下值:
● 2 kHz 的啟動(dòng)和結(jié)束脈沖頻率
● 10 kHz 的最大脈沖頻率
● 4000 個(gè)脈沖
輸出包絡(luò)的加速部分,約在 200 脈沖后,輸出波形達(dá)到最大脈沖頻率
約在400 脈沖后,輸出波形應(yīng)完成包絡(luò)的減速部分。
注意:以上例程僅為示例程序,請(qǐng)勿直接用于測(cè)試!
測(cè)試前,用戶務(wù)必使用晶體管輸出的 S7-200 SMART CPU,并根據(jù)實(shí)際使用需求修改程序中的頻率值和脈沖數(shù)!
此程序的作者和擁有者對(duì)于該程序的功能性和兼容性不負(fù)任何責(zé)任。使用該程序的風(fēng)險(xiǎn)完全由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯(cuò)誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務(wù)部門。
計(jì)算給定 PTO 包絡(luò)段的加速度(或減速度)和持續(xù)時(shí)間
Ts 段持續(xù)時(shí)間對(duì)于 PTO 包絡(luò)表計(jì)算的重要用途
計(jì)算包絡(luò)段的加速度(或減速度)和持續(xù)時(shí)間有助于確定正確的包絡(luò)表值。
注意:如果 Ts 段持續(xù)時(shí)間少于 500 微秒,將導(dǎo)致 CPU 沒(méi)有足夠的時(shí)間來(lái)計(jì)算 PTO 段值。 PTO 管道下溢位(SM66.6、SM76.6 和 SM566.6)將置為 1,PTO 操作終止。
可按如下公式計(jì)算 Ts 段持續(xù)時(shí)間
ΔF = FFinal - FInitial
Ts = PC / (Fmin + ( | ΔF | / 2 ) )
As = ΔF / Ts
Ts |
段持續(xù)時(shí)間 (s) |
As |
段頻率加速度 (Hz/s) |
PC |
段內(nèi)脈沖數(shù)量 |
Fmin | 段最小頻率 (Hz) |
ΔF |
段增量(總變化)頻率 (Hz) |
狀態(tài)位(SM66.7、SM76.7 或 SM566.7)是 PTO 空閑位,可用來(lái)指示編程的脈沖串是否已結(jié)束。PTO 中斷在脈沖串結(jié)束后執(zhí)行。
單段操作:在每個(gè) PTO 脈沖串結(jié)束時(shí)可以產(chǎn)生PTO脈沖完成中斷。中斷例程可在脈沖串結(jié)束后進(jìn)行調(diào)用。例如,如果第二個(gè) PTO 已裝載到管道中,PTO 功能在第一個(gè) PTO 結(jié)束時(shí)調(diào)用中斷例程,然后在已裝載到管道中第二個(gè) PTO 結(jié)束時(shí)再次調(diào)用。
多段操作:在 PTO 包絡(luò)表完成時(shí)產(chǎn)生PTO脈沖完成中斷。
PTO 中斷事件號(hào) |
說(shuō)明 |
19 |
PLS0 PTO 脈沖計(jì)數(shù)完成中斷 |
20 |
PLS1 PTO 脈沖計(jì)數(shù)完成中斷 |
34 |
PLS2 PTO 脈沖計(jì)數(shù)完成中斷 |
以 PLS0 PTO 中斷為例, 可在主程序中使用 CPU 第一個(gè)掃描周期有效位 SM0.1 調(diào)用 ATCH, 如下圖 1 所示:
圖 1. PLS0 PTO 脈沖計(jì)數(shù)完成中斷
PTO 中斷事件應(yīng)用實(shí)例
S7-200 SMART CPU 發(fā)送無(wú)限脈沖。
以頻率值 100 HZ 為例,一直發(fā)送脈沖為例, 程序說(shuō)明如下:
PTO 控制字節(jié) SMB67=16#C0
PTO 頻率值 SMW68=100
PTO 脈沖數(shù) SMD72=2147483647(最大值)
啟用 PTO 脈沖計(jì)數(shù)完成中斷
在脈沖計(jì)數(shù)完成中斷 INT_0 ,再次執(zhí)行 PLS 指令。
圖 2. S7-200 SMART 發(fā)送無(wú)限脈沖程序
注意:以上例程僅為示例程序,請(qǐng)勿直接用于測(cè)試!
測(cè)試前,用戶務(wù)必使用晶體管輸出的 S7-200 SMART CPU,并根據(jù)實(shí)際使用需求修改程序中的頻率值!
此程序的作者和擁有者對(duì)于該程序的功能性和兼容性不負(fù)任何責(zé)任。使用該程序的風(fēng)險(xiǎn)完全由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯(cuò)誤糾正和熱線支持,用戶不必為此聯(lián)系西門子技術(shù)支持與服務(wù)部門。
如何判斷 S7-200 SMART CPU 是否輸出高速脈沖?
可采用如下兩種方法:
1. 觀察 S7-200 SMART 硬件輸出點(diǎn) Q0.0、Q0.1 、Q0.3 指示燈狀態(tài):指示燈亮或閃爍時(shí), 表示正在輸出高速脈沖;
2. 在狀態(tài)圖表中, 在線監(jiān)視狀態(tài)位SM66.7、SM76.7 或 SM566.4:該位為 FALSE 時(shí), 表示PTO 進(jìn)行中; 為 TURE時(shí), 表示 PTO 空閑。
為何連續(xù)觸發(fā)多次 PLS 指令, S7-200 SMART CPU 只輸出前幾次的高速脈沖串?
PTO 單段脈沖串排隊(duì)
PTO 脈沖的單段只能有一個(gè)脈沖串排隊(duì),PTO 對(duì)溢出的脈沖串不響應(yīng),PTO 溢出位置 1。 如果希望檢測(cè)后續(xù)溢出,溢出位置位后只能手動(dòng)復(fù)位或 CPU STP 到 RUN。
測(cè)試 PTO 單段脈沖串排隊(duì), 程序說(shuō)明如下:
將 S7-200 SMART 硬件 Q0.0 接入I0.0。
配置高速計(jì)數(shù)器向?qū)В瑔⒂?HSC0_INIT
PTO 控制字節(jié) SMB67=16#C0
PTO 頻率值 SMW68=100
PTO 脈沖數(shù) SMD72=1000 第一個(gè)脈沖串發(fā)送期間,按如下操作連續(xù)三次使能 V0.0,上升沿觸發(fā) PLS 指令并累計(jì)次數(shù):
第一、二次使能 V0.0 ,上升沿觸發(fā) PLS 指令,PLS 指令累計(jì)次數(shù) VW20< =1,Q0.0 以 100 HZ 頻率值輸出 1000 個(gè)脈沖;
第三、四次使能 V0.0 ,更新脈沖數(shù)并上升沿觸發(fā) PLS 指令 ,PLS 指令累計(jì)次數(shù) VW20 >1
PTO 控制字節(jié) SMB67=16#C4
PTO 脈沖數(shù) SMD72=500
如下圖 3 所示:
圖 3. PTO 單段脈沖串排隊(duì)
待 S7-200 SMART CPU 脈沖發(fā)送完成, 監(jiān)視狀態(tài)圖標(biāo),HC0=2000,PLS 累計(jì)計(jì)數(shù) VW20=4 次, PTO 0溢出位 SM66.6=1。如下圖 4 所示:
說(shuō)明 PTO 脈沖的單段只能有一個(gè)脈沖串排隊(duì),對(duì)第三、四個(gè)溢出的脈沖串不響應(yīng),PTO 溢出位置 1。
圖 4. PTO 單段脈沖串排隊(duì)狀態(tài)圖表
電話:13916183699
郵箱:13916183699@139.com
網(wǎng)址:http://www.nabaiqian.cn
地址:中國(guó)上海市青浦區(qū)北青公路7171號(hào)111-112室