怎样通过格雷码的指令库程序读取编码器的数据呢?还有八条线怎么接到对应的I点呢?看到论坛里的很多说法没搞明白,是可以通过SWAP指令来设定相应的I点以对应编码器的接线吗?请各位指点,谢谢了。
最佳答案
1.CPU/ST40,订货号:6ES7288-1ST40-0AA0,DC/DC/DC,支持24DI源型输入/漏性输入和16DO晶体管输出。
所以ST40支持欧姆龙8位绝对值编码器,日式编码器通常是NPN方式,接线时要按NPN的接线,也就是电源正接公共端M。
2.但CPU/ST40只有一个公共端,如果设定为NPN接线,那所有输入设备都要按此方式来进行,如果还有其他PNP的设备就比较麻烦了(还要用上拉或下拉电阻方式)。
我个人建议你用扩展模块来单独接编码器,1个8位绝对值编码器就选EM DE08(6ES7 288-2DE08-0AA0),2个8位绝对值编码就选EM DE16(6ES7 288-2DE16-0AA0),这样会更灵活方便。
3.关于接线按照下面方式
比如第一个8位绝对值编码器接入IB0
IB0其实是I0.7、I0.6、I0.5、I0.4、I0.3、I0.2、I0.1、I0.0组成
我们所使用的是I0.0、I0.1,I0.2、I0.3、I0.4、I0.5、I0.6、I0.7
实际对应的接线2^0、 2^1、 2^2、2^3、 2^4、2^5、2^6、2^7
比如第二个8位绝对值编码器接入IB1
IB1其实是I1.7、I1.6、I1.5、I1.4、I1.3、I1.2、I1.1、I1.0组成
我们所使用的是I1.0、I1.1,I1.2、I1.3、I1.4、I1.5、I1.6、I1.7
实际对应的接线2^0、 2^1、 2^2、2^3、 2^4、2^5、2^6、2^7
想使用那个字节,就按那个字节按上面规律来做即可。
3.SWAP是字节交换的指令,是将字的高低字节的转换一下。比如:字IW0将的将IB0和IB1做一下高低字节的转换。你是8位绝对值编码器刚好一个字节,用不到SWAP指令。
4."graycode.mwl" 指令库
下载地址:http://support.automation.siemens.com/CN/view/zh/26485059
最下面有压缩包下载,下载后看能不有导入Smart的库里,我没有安装S7-200 Smart软件,无法测试,请参考添加库到STEP 7 Micro/WIN,ID:16689345的文章。
5.如果导入不成功,你就按格雷码转二进制码方法,自己做个解码子程序。
最左边位保持不变,解码从左边第二位起,将左边与左边一位解码后的值异或,做为该位解码后的值。
比如IB0大概思路:先将IB0的每一位值读出,做一个8次循环跳转,在循环内用字节右移和字节异或运算。
6.之前写过几个关于绝对编码器的回复,刚好是同一人的提问,也算是绝对编码器问题连载,希望对你有所帮助。
《S7200 Smart_CPU SR30接入绝对型编码器编程问题》
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=125832&cid=1076
《S7_200CN 接入绝对型编码器控制变频器输出频率》
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=125848&cid=1028
《s7200 格雷码转化问题》
http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=125968&cid=1028
提问者对于答案的评价:
感谢指导,已经解决了,刚开始就是不会怎么接线入输入端
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc346841.html