,說需要做一個無關(guān)于plc掃描周期做脈沖輸出的程序,脈沖周期為0.1S,提問鏈接【西門子200smart產(chǎn)生不受掃描周期影響的0.1S脈沖】:
http://www.ad.siemens.com.cn/service/answer/tobe_solution.aspx?Q_ID=186987&cid=1076經(jīng)過幾次交流,估計還沒有*說明這個問題,于是我萌生了想寫一寫關(guān)于200smart 定時中斷的應用的念頭。
首先該網(wǎng)友需要編輯一個與plc掃描周期無關(guān)的輸出,我這里理解為幾個方面:
1) 與周期無關(guān)的程序一般采用中斷,又結(jié)合是脈沖方式輸出,所以定時中斷比較合適。西門子200或者200smart 具體定時中斷功能的有4個,其中2個是PT端子直接賦值(T32/T96),輸入數(shù)據(jù)范圍0~32767*時基,刷新的同步方式即相當于中斷方式,系統(tǒng)自動連接到中斷事件21# /22#;另外2個中斷時間是在特殊標志字節(jié)SMB34/SMB35中設置,中斷事件連接到10# /11#。
2) 因為是脈沖方式輸出,我這里理解為方波占空比50%,因為要求這個脈沖周期為0.1S,那么,相當于50mS的占空比輸出。
3) 綜合上述要求,是與掃描周期無關(guān)的,所以需要立即輸出方式
編程思路:
1) 定義定時中斷,中斷事件號10#,即SMB34中設置為50(mS)
2) 在主程序OB1中調(diào)用定時中斷初始化子程序
3) 在定時中斷子程序中編輯一個取反指令,因為該網(wǎng)友要求僅僅是一個輸出,而指令zui小單位是字節(jié),所以,在取反指令下面,緊接著應該復位不使用的位邏輯結(jié)果。這里調(diào)用M區(qū)的MB0,當然這個地址區(qū)沒有規(guī)定,用戶自由選擇其它地址也可以
4) zui后將結(jié)果用(I)指令隱射到物理輸出地址Q0.0中
程序:*按個人習慣編寫
1) 定時中斷初始化,圖示:
2) 在主程序OB1中調(diào)用定時中斷初始化子程序,圖示:
3) 在子程序上編輯脈沖輸出程序,圖示:
4) 將程序編譯保存后下載到cpu,打開狀態(tài)圖表,監(jiān)控程序運行結(jié)果
在plc上測試結(jié)果能夠滿足需要,完成。
西門子V901FL6094-1AC61-0AB1
西門子V901FL6094-1AC61-0AB1