发布于 2011-04-02 22:34:00
11楼
这个问题很多年前做过,其实很简单。编码器对应的是物理端子0-7位。
把编码器的最高位连接到中断IO端子上(如果这个高位PLC不支持IO中断,可以调换一个端子,记得在做格雷码转换时把这个位调换回来,否则数据出错),建立两个中断。另外建立一个双字的临时数据A.
1,在上升沿中断里,如果第6位OFF则把原来的数据A加255=A(如果第6位ON不做任何处理)。
2,在下降沿中断里,如果第6位OFF则把原来的数据A-减255=A(如果第6位ON不做任何处理)。
3,读取当前IO,做格雷码转换(如果因为PLC的IO端口不支持编码器的最高位的IO中断而打乱了IO位的顺序,必须调整回来),假设转换的数据为B,那么当前的编码器的数据=A+B
具体的程序我就不再编写了。希望你能看明白。实在不行改天写给你。今天累了