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