s7200 格雷码转化问题

我在siemens资料库里找到了一段绝对型编码器程序转化问题,比如12位编码器,由于高低位关系,需要左移8次,看到程序里面的V200.0不太理解,这个V200.0 是特殊的寄存器吗,会使其循环8次,假如不是,我需要怎么处理呢?这个左移8次是每时每刻都需要执行还会头一次扫描执行一次,有点不太理解,怎么处理这个高低字节调位置的问题,见图片说明。

问题补充:
首先感谢hbttki耐心的指导和帮助,之前的您回复的关于格雷码转化问题的解答我都仔细看了一遍,其实,我再看一个贴的的目的只有一个,对西门子高低字节转化有点不适应不知道什么时候转,是每个扫描周期转一次还是实时的需要转化。
我用的CPU224XPCN,用的10位绝对型编码器,想用I0.0-11.1一一对应编码器的低到高,但是西门子比别的厂家不一样,需要把高低字节互换还要屏蔽IW1中的6位出去,这个我会了,就是高低字节的转化条件没弄明白,不知道何时开始循环移位,给它的触发条件是什么?西门子官网给的示例程序中的V200.0是什么意思? 我昨晚用了一个8位的编码器临时测试了一下,格雷码转二进制时,编码器的格雷码输出没有问题,但是pic1中格雷码转化后VW4一直未看到数值显示和变化,另外,我高低位触发条件用的一个0.5秒脉冲,我觉得肯定不对,这两点疑问没有解决…

图片说明:

s7200 格雷码转化问题    s7200 格雷码转化问题   

最佳答案

朋友又见面了,上次给你的资料很多了,没想到你还在编码器这绕圈圈呀。
1.V不是特殊寄存器,只是变量存储器,SM是特殊寄存器。
2.上次给你的《怎样在 STEP 7 MicroWIN 中相互转换二进制码和格雷码》就是一个很好的工具,你直接添加到库里就可以啦。
https://support.industry.siemens.com/cs/document/26485059?lc=zh-CN
只是全球技术资源库和找答案不是一个平台,你需要重新注册,通过审核才可以登录。
3.我又找了找,在中华工控网廖老师博客里发现也有“graycode”库的下载 ,这个就很容易注册,登录进行下载啦。
http://blog.gkong.com/liaochangchu_146244.ashx
4.解压缩放到C:\Program Files\Siemens\STEP 7-MicroWIN V4.0\Lib里,然后添加到库里。
不太明白看一下,S7-200跟我学/跟我做系列视频:第135讲–指令库的使用。
http://www.ad.siemens.com.cn/service/elearning/cn/SerialVideo.aspx?vsid=1&sPage=14
5.我也刚刚安装了一下,做了一下测试,很好用。
拿你的10位绝对值编码器来讲,使用GRAY_BIN_W直接把输入的格雷码解码成字类型的二进制码。请参考上传图片。
网络1,IW0与运算03FF作用是只保留最低10位。
但是有一点需要注意,IW0是由IB0和IB1组成,所以IW0其实是I0.7、I0.6、I0.5、I0.4、I0.3、I0.2、I0.1、I0.0、I1.7、I1.6、I1.5、I1.4、I1.3、I1.2、I1.1、I1.0组成。
我们所使用的是I0.0、I0.1,I1.0、I1.1、I1.2、I1.3I、1.4、I1.5、I1.6、I1.7。这10个位
实际对应的接线2^8、 2^9、2^0、 2^1、 2^2、2^3、 2^4、2^5、2^6、2^7。
如果看不太明白,S7-200跟我学/跟我做系列视频:第13至35讲–学习一下数据类型
http://www.ad.siemens.com.cn/service/elearning/cn/SerialVideo.aspx?vsid=1&sPage=2
6.如果想正常使用I0.0至I1.1对应2^0至 2^9,你需要在程序里先将IB0和IB1做一下高低字节的转换,这个比较简单请自行思考吧。
7.以上就是对“graycode”库的讲解,建议你直接使用,非常好的一个工具。

问题补充

1.给你留了一个悬念,让你自行思考将IB0和IB1做一下高低字节的转换,就是希望你能够多多思考。
在S7-200里,有一个字节交换的指令(SWAP),你直接调用就行。
详见上传图片吧。
这样就改为:I0.0、I0.1,I0.2、I0.3、I0.4、I0.5、I0.6、I0.7、I1.0、I1.1
对应的接线: 2^0、2^1、2^2、2^3、2^4、2^5、2^6、 2^7、2^8、 2^9

余下内容,字数又超了,抓成图啦。

图片说明:

s7200 格雷码转化问题  s7200 格雷码转化问题  s7200 格雷码转化问题  

提问者对于答案的评价:
谢谢您的指导,看来我的问题到这已经基本解决了,确实对于PLC的灵活应用还需要进一步系统学习和多思考多实践,这次也是帮朋友的忙,项目着急没有时间去系统学习研究,也是碰到一个问题解决一个问题,幸好有您这样热心的人愿意花时间来帮助我,由衷的感谢!!

最佳答案作者回复:
图片“字节交换指令里”,有一处笔误。
网络1字的与运算里IW0应改为VW0。

LD     SM0.0
MOVW   IW0, VW0
AENO
SWAP   VW0
AENO
MOVW   VW0, VW2
AENO
ANDW   16#03FF, VW2
AENO
CALL   GRAY_BIN_W:SBR1, VW2, VW10

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc201095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年10月30日 下午11:48
下一篇 2017年10月30日

相关推荐