工控大混子
級(jí)別: 探索解密
|
各位大神請(qǐng)教一下,怎么用SCL語(yǔ)言來(lái)寫(xiě)上升沿和下降沿 |
---|---|
|
wzbarley
好好學(xué)習(xí),天天向上。
級(jí)別: 探索解密
|
首先了解沿的機(jī)制;將當(dāng)前信號(hào)和上一周期信號(hào)進(jìn)行比較;上升沿是檢測(cè)0到1的變化,下降沿是檢測(cè)1到0的變化。 以上升沿為例,當(dāng)前信號(hào)和上一周期信號(hào)閉點(diǎn)串聯(lián)(與運(yùn)算);待處理程序處理完成后,將當(dāng)前信號(hào)重新賦值給上一周期信號(hào)的存儲(chǔ)器中。SCL和梯形圖類(lèi)似。 |
|
---|---|---|
|
wingwf2000
級(jí)別: 探索解密
|
嚴(yán)格說(shuō)來(lái),這種寫(xiě)法是每執(zhí)行一次代碼就相當(dāng)于一個(gè)上升沿,但是若是在一個(gè)掃描周期多次執(zhí)行或好幾個(gè)周期才執(zhí)行一次的話(huà),就會(huì)出錯(cuò)! 2樓的也是這樣,甚至于1樓的亦是如此
|
---|---|
|
wzbarley
好好學(xué)習(xí),天天向上。
級(jí)別: 探索解密
|
你說(shuō)的這種情況不在沿的使用范疇內(nèi);這種用中斷就行了。 |
|
---|---|---|
|
世界杯之殤
級(jí)別: 正式會(huì)員
|
你確定?這個(gè)應(yīng)該和這兩個(gè)變量是什么變量有關(guān)系,只要不是臨時(shí)變量這個(gè)就不會(huì)出錯(cuò),我自己的程序中很多都這樣用沒(méi)出現(xiàn)過(guò)什么異常。 |
---|---|
|
wingwf2000
級(jí)別: 探索解密
|
如果你把代碼寫(xiě)進(jìn)子程序里,這個(gè)子程序是否能保證一個(gè)PLC掃描周期只調(diào)用一次?還是能保證每個(gè)周期都調(diào)用? 或者這部分代碼在一個(gè)循環(huán)里多次被執(zhí)行,或者可能被跳轉(zhuǎn)指令跳過(guò)而不執(zhí)行,你可能就會(huì)發(fā)現(xiàn)里面的貓膩了。 不過(guò)一般來(lái)說(shuō)好多人都沒(méi)使用過(guò)循環(huán)或跳轉(zhuǎn)指令,而且寫(xiě)的子程序都是一個(gè)掃描周期都被掃描而且一個(gè)掃描周期內(nèi)只掃描一次,即使不是在子程序內(nèi),一般的這部分代碼也都是一個(gè)掃描周期只掃描一次而且每個(gè)掃描周期都被掃描。 所以上面的代碼本質(zhì)上反映的就是本次執(zhí)行代碼和上次執(zhí)行代碼時(shí)信號(hào)有變化(只能表明這次執(zhí)行代碼時(shí)的變量和上次執(zhí)行這次代碼時(shí)的變量不同,也可能執(zhí)行兩次代碼之間信號(hào)有若干次變化被你捕捉到,亦有可能這兩次代碼之間信號(hào)雖有若干次變化,但執(zhí)行本次代碼時(shí)信號(hào)剛好恢復(fù)原狀而不能捕捉到,這樣算你倒霉)! [ 此帖被wingwf2000在2024-08-28 11:49重新編輯 ] |
---|---|
|
donxlr
級(jí)別: 正式會(huì)員
|
圖片:
源碼應(yīng)該是這樣的,F(xiàn)B塊 [ 此帖被donxlr在2024-08-28 14:25重新編輯 ] |
---|---|
|
liaogf
級(jí)別: 正式會(huì)員
|
那個(gè)代碼就算執(zhí)行1萬(wàn)次也不會(huì)有問(wèn)題,只要不是臨時(shí)的變量! |
---|---|
|