卓发智能
相互学习,共同进步。
级别: 工控侠客
精华主题: 0
发帖数量: 2497 个
工控威望: 3158 点
下载积分: 13169 分
在线时间: 683(小时)
注册时间: 2008-08-03
最后登录: 2025-11-01
查看卓发智能的 主题 / 回贴
楼主  发表于: 41天前
请教各位朋友,PLC程序怎么读取编码器的数据?2个编码器要怎么与PLC进行接线?码码器旋转一圈是360脉冲
相信自我!
lxdddd1
天天向上
级别: 论坛先锋
精华主题: 0
发帖数量: 17 个
工控威望: 1522 点
下载积分: 1503 分
在线时间: 76(小时)
注册时间: 2024-08-21
最后登录: 2025-11-02
查看lxdddd1的 主题 / 回贴
1楼  发表于: 29天前
编码器字.BoolData[0]:=棕色;
编码器字.BoolData[1]:=橙色;
编码器字.BoolData[2]:=黄色;
编码器字.BoolData[3]:=绿色;
编码器字.BoolData[4]:=蓝色;
编码器字.BoolData[5]:=紫色;
编码器字.BoolData[6]:=灰色;
编码器字.BoolData[7]:=白色;//256到7,360到8
编码器字.BoolData[8]:=粉色;//360编码器输入
脉冲命令(Clk:=初始校正);//初始校正脉冲
CASE 编码器选择 OF
    
    
360:
初始校正后角度:=Gray(编码器字.wordData,_R360,UINT#76,UINT#0);//格雷码转换值
当前角度L:=Gray(编码器字.wordData,_R360,UINT#76,初始校正后角度UINT);//经过初始校正后转换值
IF 脉冲命令.Q =TRUE THEN;
    初始校正后角度UINT:=LREAL_TO_UINT(初始校正后角度);//初始校正角度寄存
END_IF;
IF 角度取反 = TRUE THEN ;//角度取正
编码器角度:= UDINT#10*LREAL_TO_UDINT(当前角度L);
ELSE;//角度取反
    编码器角度:=UDINT#10*(UDINT#360-LREAL_TO_UDINT(当前角度L));
END_IF;


256://256编码器
当前角度L2:=Gray(编码器字.wordData,_R256,UINT#0,UINT#0);
    Angle_1:=UDINT#10*LREAL_TO_UDINT(当前角度L2);
    IF 角度取反 = TRUE THEN;//角度取正
        编码器实际位置:=Angle_1;
    ELSE;//角度取反
        编码器实际位置:=UDINT#3590-Angle_1;
    END_IF;
    IF 脉冲命令.Q =TRUE THEN;
        编码器零位:=编码器实际位置;//初始校正寄存器
    END_IF;

    IF 编码器实际位置<编码器零位 THEN;
        编码器角度:=编码器实际位置+UDINT#3590-编码器零位;
    END_IF;
        IF 编码器实际位置>=编码器零位 THEN;
            编码器角度:=编码器实际位置-编码器零位;
        END_IF;

END_CASE;
卓发智能
相互学习,共同进步。
级别: 工控侠客
精华主题: 0
发帖数量: 2497 个
工控威望: 3158 点
下载积分: 13169 分
在线时间: 683(小时)
注册时间: 2008-08-03
最后登录: 2025-11-01
查看卓发智能的 主题 / 回贴
2楼  发表于: 18天前
引用
引用第1楼lxdddd1于2025-10-04 11:07发表的  :
编码器字.BoolData[0]:=棕色;
编码器字.BoolData[1]:=橙色;
编码器字.BoolData[2]:=黄色;
编码器字.BoolData[3]:=绿色;
编码器字.BoolData[4]:=蓝色;
.......

请教朋友,第7  第8是什么意思,能详细说明一下吗?感激不尽!
相信自我!
卓发智能
相互学习,共同进步。
级别: 工控侠客
精华主题: 0
发帖数量: 2497 个
工控威望: 3158 点
下载积分: 13169 分
在线时间: 683(小时)
注册时间: 2008-08-03
最后登录: 2025-11-01
查看卓发智能的 主题 / 回贴
3楼  发表于: 昨天
引用
引用第1楼lxdddd1于2025-10-04 11:07发表的  :
编码器字.BoolData[0]:=棕色;
编码器字.BoolData[1]:=橙色;
编码器字.BoolData[2]:=黄色;
编码器字.BoolData[3]:=绿色;
编码器字.BoolData[4]:=蓝色;
.......

不错,按此方式已经搞定了这个项目,非常感谢这位朋友的热心帮助,谢谢!
相信自我!