|
卓發(fā)智能
相互學(xué)習(xí),共同進(jìn)步。
級別: 工控俠客
|
請教各位朋友,PLC程序怎么讀取編碼器的數(shù)據(jù)?2個編碼器要怎么與PLC進(jìn)行接線?碼碼器旋轉(zhuǎn)一圈是360脈沖 |
|
|---|---|---|
|
|
lxdddd1
天天向上
級別: 論壇先鋒
|
編碼器字.BoolData[0]:=棕色; 編碼器字.BoolData[1]:=橙色; 編碼器字.BoolData[2]:=黃色; 編碼器字.BoolData[3]:=綠色; 編碼器字.BoolData[4]:=藍(lán)色; 編碼器字.BoolData[5]:=紫色; 編碼器字.BoolData[6]:=灰色; 編碼器字.BoolData[7]:=白色;//256到7,360到8 編碼器字.BoolData[8]:=粉色;//360編碼器輸入 脈沖命令(Clk:=初始校正);//初始校正脈沖 CASE 編碼器選擇 OF 360: 初始校正后角度:=Gray(編碼器字.wordData,_R360,UINT#76,UINT#0);//格雷碼轉(zhuǎn)換值 當(dāng)前角度L:=Gray(編碼器字.wordData,_R360,UINT#76,初始校正后角度UINT);//經(jīng)過初始校正后轉(zhuǎn)換值 IF 脈沖命令.Q =TRUE THEN; 初始校正后角度UINT:=LREAL_TO_UINT(初始校正后角度);//初始校正角度寄存 END_IF; IF 角度取反 = TRUE THEN ;//角度取正 編碼器角度:= UDINT#10*LREAL_TO_UDINT(當(dāng)前角度L); ELSE;//角度取反 編碼器角度:=UDINT#10*(UDINT#360-LREAL_TO_UDINT(當(dāng)前角度L)); END_IF; 256://256編碼器 當(dāng)前角度L2:=Gray(編碼器字.wordData,_R256,UINT#0,UINT#0); Angle_1:=UDINT#10*LREAL_TO_UDINT(當(dāng)前角度L2); IF 角度取反 = TRUE THEN;//角度取正 編碼器實(shí)際位置:=Angle_1; ELSE;//角度取反 編碼器實(shí)際位置:=UDINT#3590-Angle_1; END_IF; IF 脈沖命令.Q =TRUE THEN; 編碼器零位:=編碼器實(shí)際位置;//初始校正寄存器 END_IF; IF 編碼器實(shí)際位置<編碼器零位 THEN; 編碼器角度:=編碼器實(shí)際位置+UDINT#3590-編碼器零位; END_IF; IF 編碼器實(shí)際位置>=編碼器零位 THEN; 編碼器角度:=編碼器實(shí)際位置-編碼器零位; END_IF; END_CASE; |
|---|---|
|
|
|
卓發(fā)智能
相互學(xué)習(xí),共同進(jìn)步。
級別: 工控俠客
|
請教朋友,第7 第8是什么意思,能詳細(xì)說明一下嗎?感激不盡! |
|
|---|---|---|
|
|
卓發(fā)智能
相互學(xué)習(xí),共同進(jìn)步。
級別: 工控俠客
|
不錯,按此方式已經(jīng)搞定了這個項(xiàng)目,非常感謝這位朋友的熱心幫助,謝謝! |
|
|---|---|---|
|
|
旋轉(zhuǎn)編碼器
級別: 略有小成
|
編碼器一圈360脈沖屬于增量編碼器 歐姆龍也有絕對值編碼器 是并行IO點(diǎn)格雷碼輸出的 |
|
|---|---|---|
|
附件:
GZ58增量編碼器 -1024.doc (266 K) 下載次數(shù):12
附件:
單圈絕對值并行-4096.doc (322 K) 下載次數(shù):14
|
|
往事如風(fēng)
科技改變制造
級別: 網(wǎng)絡(luò)英雄
|
一般多用高速計(jì)數(shù)器 |
|
|---|---|---|
|