V2.2固件的CPU PTO停止后可以立即再次啟動,不需要有上一個有效脈沖的周期時間延遲。
由于在 PTO 操作正在產生脈沖時被禁止,再次執行 PLS 指令之前必須要有時間延遲,并要確保其等于上一個有效脈沖的最大周期時間。因此,可采用如下方法來實現延遲執行新脈沖串輸出:
延遲上一個有效脈沖的最大周期時間,再執行PLS 指令,輸出新脈沖串。
2. 利用 PTO 空閑狀態位(SM66.7、SM77.7 和 SM566.7)和程序執行錯誤狀態位 SM4.3:
PTO 空閑(SM66.7=1、SM77.7=1 和 SM566.7=1)以及程序執行無錯誤 SM4.3=0 時,執行 PLS 指令;
PTO 空閑(SM66.7=1、SM77.7=1 和 SM566.7=1)以及程序執行有錯誤 SM4.3=1 時, 通過GET_EEROR 指令獲取 CPU 程序執行錯誤代碼16#05,繼續返回直到錯誤清除執行 PLS 指令。
S7-200 SMART PLS 定位編程方法比較
采用定時中斷 | 利用 PTO 空閑狀態位和程序執行錯誤狀態位 |
實際應用中,在 PTO 頻率值不固定的情況下, 需根據變化的 PTO 頻率值計算再次執行 PLS 指令的延遲時間Tdelay = 1 / Fmax 編程相對復雜,但精確計算上一個有效脈沖的最大周期時間,有利于保證延遲執行新脈沖串的輸出。 |
PTO 頻率越小,PTO 操作被禁止后內在地完成該脈沖的周期時間越長。 即 LBL 標簽內跳轉次數越多,該部分程序處理時間越長,因此可能造成 CPU 看門狗超時錯誤。此時,則需要用戶編程延長看門狗時間,防止CPU 停機。 |
例如,V0.0 上升沿觸發 PLS 指令,以 100 HZ 頻率輸出 5000 個脈沖數。在 5000 個脈沖數輸出完成之前,使能 I0.2 ,I0.2 上升沿中斷程序 INT_0 里中斷禁止 PTO 并啟用定時中斷 INT_1,定時中斷時間 SMB34= Tdelay = 1 / 100HZ= 10 ms;
定時時間到,更新 PTO 頻率為 2000 HZ 和脈沖數為 10000, 立即執行 PLS 指令輸出新脈沖串并分離中斷。 程序編寫如下圖 5 所示:
程序說明:
PTO 控制字節 SMB67=16#C5
PTO 頻率值 SMW68=100
PTO 脈沖數 SMD72=5000
使能 V0.0,上升沿觸發 PLS ,
在 5000 個脈沖數輸出完成之前,I0.2 上升沿中斷禁止 PTO并啟用定時中斷INT_1,定時時間 SMB34= 1 / 100HZ= 10 ms 。
定時時間到,進入定時中斷 INT_1, 更新PTO 頻率為 2000 HZ 和脈沖數為10000
PTO 控制字節 SMB67=16#C5
PTO 頻率值 SMW68=2000
PTO 脈沖數 SMD72=10000
立即執行 PLS 指令輸出新脈沖串并分離中斷。
圖 5. 采用定時中斷禁止延時執行新脈沖串輸出
2. 利用 PTO 空閑狀態位(SM66.7、SM77.7 和 SM566.7)和程序執行錯誤狀態位 SM4.3:
例如,V0.0 上升沿觸發 PLS 指令,以 100 HZ 頻率輸出 5000 個脈沖數。在 5000 個脈沖數輸出完成之前,使能 I0.2 ,I0.2 上升沿中斷程序 INT_0 里中斷禁止 PTO ,更新 PTO 頻率為 2000 HZ 和脈沖數為 10000, 并跳轉到標簽 0;
程序說明:
PTO 控制字節 SMB67=16#C5
PTO 頻率值 SMW68=100
PTO 脈沖數 SMD72=5000
使能 V0.0,上升沿觸發 PLS 。
在 5000 個脈沖數輸出完成之前,I0.2 上升沿中斷禁止 PTO , 更新PTO 頻率為 2000 HZ 和脈沖數為10000
PTO 控制字節 SMB67=16#C5
PTO 頻率值 SMW68=2000
PTO 脈沖數 SMD72=10000
在標簽 0 編寫如下程序:
PTO 空閑 SM66.7=1 以及程序執行無錯誤 SM4.3=0 時,執行 PLS 指令,輸出新脈沖串;
PTO 空閑 SM66.7=1 以及程序執行錯誤狀態位 SM4.3=1 時,
通過 GET_EEROR 指令獲取 CPU 程序執行錯誤代碼16#05,繼續返回到標簽 0。
程序編寫如下圖 6 所示:
圖 6. 利用 PTO 空閑狀態位和程序執行錯誤狀態位延時執行新脈沖串輸出
在向導內激活STP后,當STP使能高速脈沖會立即停車,當需要再次發送脈沖時,需復位STP信號,而有些工況人工無法干預,如何復位STP?
以ST40為例,見圖7 所示:
圖7. 運動控制軸0組態
接線如下圖所示:
將實際的STP信號接入 I0.0,將 Q1.0輸出連接到 I0.1,如圖 8 所示:
圖8.ST40接線
注:紅色虛線為程序內邏輯;黑色實線為實際接線
程序如下圖 9 所示:
圖9. STP功能復位
S7-200 SMART PLS指令 正在產生脈沖時被禁止,為何不能再立即執行 PLS 指令輸出新脈沖串?
S7-200 SMART PTO 正在產生脈沖時被禁止,CPU 對立即執行新脈沖串輸出不響應,導致非致命錯誤。 再次執行 PLS 指令前必須要有時間延遲,并確保其等于上一個有效脈沖的最大周期時間 Tdelay = 1 / Fmax
例如,I0.2 上升沿中斷禁止 PTO,立即更新脈沖頻率和脈沖數,CPU 忽略立即執行的 PLS 指令并報錯。
程序說明:
PTO 控制字節 SMB67=16#C5
PTO 頻率值 SMW68=100
PTO 脈沖數 SMD72=5000
使能 V0.0,上升沿觸發 PLS 。
在 5000 個脈沖數輸出完成之前,I0.2 上升沿中斷禁止 PTO , 更新PTO 頻率為 2000 HZ 和脈沖數為10000
PTO 控制字節 SMB67=16#C5
PTO 頻率值 SMW68=2000
PTO 脈沖數 SMD72=10000
立即執行 PLS 指令。
如下圖 10 所示:
圖 10. 中斷程序里立即執行 PLS 指令
STEP 7 Micro/Win SMART 軟件在線,從 PLC 信息可以查看到非致命錯誤。如下圖 11 所示:
圖 11. 非致命錯誤
電話:13818569113
郵箱:13818569113@139.com
網址:http://www.exuetong.cn/
地址:上海青浦區北青公路7171號111-112室