如何在PLC中對(duì)編碼器的脈沖數(shù)做采集歸檔記錄?
劉玉蓉
發(fā)布于2014-12-05 17:51
2
0
標(biāo)簽:
編碼器的單圈分辨率是13位.我想在DB1中,記錄每一個(gè)脈沖數(shù)值,用來分析編碼器的輸出脈沖是否連續(xù)正常。不能用定時(shí)采集的方法做,避免丟失脈沖數(shù)。
用數(shù)值比較的方法始終沒成功,不知道為何?
圖片說明: 1,程序截圖
佳答案
在網(wǎng)絡(luò)2中,你的DB1中的每個(gè)DBW都賦不同的初值了是嗎。
如果是,則因?yàn)檠h(huán)指令是在一個(gè)掃描周期內(nèi)完成的,所以MW50的值在循環(huán)期間沒有改變。假設(shè)次執(zhí)行時(shí)MW50為1,進(jìn)入循環(huán)指令后與DBW0(為1)比較相等,則與DBW2(為2)比較,這時(shí)不相等則跳出循環(huán)了。在第二次掃描周期時(shí)MW50為2,進(jìn)入循環(huán)指令后與DBW0比較,不相等則直接跳出循環(huán),此后的每次掃描相當(dāng)于你的循環(huán)都不起作用了。
如果不是,初值都相同(默認(rèn)為0),則次掃描就可能不執(zhí)行循環(huán),或進(jìn)入循環(huán)后都賦相同的值,并不能起到你想要的結(jié)果。
OPN DB1
L MW 50
T DBW [MD60]
L MD60
L P#2.0
+I
T MD60
L MD60
L 80
<I
JC mo1
L 0
T MD60
mo1: NOP 0
程序沒有測(cè)試,你可以試一試,只是個(gè)思路。在OB100中對(duì)MD60賦值0。保存到DB塊地址大為DBW10,若擴(kuò)大則修改80這個(gè)數(shù)值。