bhqt
級別: 論壇版主
![]() ![]() ![]() ![]() |
西門子S7-200的相關問題都可以在此提出。我會盡我最大能力去,用最快的時間幫兄弟們解決。我只是起一個拋磚引玉的作用,很多的時候,希望大家積極參與,一個人的力量是有限的。人多思路就開闊,方法就多,更容易解決問題。 ![]() 【1】請寫明您使用的200系列PLC的具體型號,最好是訂貨號!例如:6ES7 214-2BD23-0XB8 【2】請詳細,具體寫明您要我給解答的問題,不要將技術問題升級到學術問題,也不要將點問題牽扯到面上。 【3】請留下您的聯系方式,郵箱、QQ、電話等 [ 此貼被bhqt在2008-01-18 14:05重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|
lyrun
級別: *
![]() |
我的PLC是 216-2AD23-OXB8。由于程序掃描周期比較長(大于10MS),不能直接在主程序里面用定時器T來實現,現在考慮到用中斷,但聽說在中斷程序里面是不能用時間定時器的。請問斑主,這個程序該如何實現呢?不勝感激! 郵箱:lyrun1120@163.com; QQ:262823396 |
---|---|
|
lyrun
級別: *
![]() |
主程序區: LD SM0.1 //首次掃描時調用一次 CALL SBR_1:SBR1 // LD SM0.0 //一直調用 CALL SBR_0:SBR0 //-------------------------------------------------- 子程序區: 子程序0(一直調用,計時用): LD M0.0 AN T32 TON T32, VW0 //此寄存器的值即為可調的定時時間(0-10MS),我是通過屏來實現的 子程序1(首次掃描調用,初始化程序用): LD SM0.0 R M0.0, 1 ATCH INT_0:INT0, 1 //在I0.0 的下降沿觸發的中斷事件 ATCH INT_1:INT1, 21 //定時器T32,CT = PT 中斷時觸發的中斷事件 ENI //---------------------------------------------------------- 中斷程序區: 中斷0(在I0.0 的下降沿時觸發): LD SM0.0 S M0.0, 1 //檢測到I0.0的下降沿,置位M0.0到子程序0開始計時 R Q0.1, 1 //并復位控制輸出 中斷1(定時器T32,CT = PT 中斷時觸發的中斷事件): LD SM0.0 S Q0.1, 1 //定時時間到,輸出控制 R M0.0, 1 //并復位定時器執行條件(M0.0),為后面再次計時做準備 以上是小弟做的一個0-10MS可調定時器程序,是通過檢測交流電的過零點(由I0.0輸入),然后延時輸出控制振機的振動強度用的(由Q0.1輸出)。但在測試過程中感覺還是有點問題,就是輸出控制不是很準確。再說這還只是一個小程序,掃描周期是很短的,而實際項目的程序是很長的,掃描周期應該會在10MS以外,這樣輸出控制的準確性就更難保證了。 希望斑主或是各位給能點意見,或是修改我上面的程序,或是干脆重寫一個都行,哪怕是給點思路,也非常感激!! 俺的聯系方式:lyrun1120@163.com QQ:262823396 [ 此帖被lyrun在2008-09-10 08:56重新編輯 ] |
---|---|
|