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日 下午11:49

相关推荐

  • 测试显示时间

    最近想做个测试时间的,机器在旋转的的时候,0-90度之间旋转,测试的是0-15度,15-90度和0-90度之间的时间,在威纶触摸屏上以毫秒的方式显示出来,怎么实现呢? 最佳答案 用…

    SIMATIC S7-200 2021年7月5日
  • 打开

    请教。怎样用S7200V4.09.25软件打开用smartr软件s7200,v02.04编辑的工程文件。谢谢! 最佳答案 用S7-200软件是无法打开smart200编辑的程序。可…

    SIMATIC S7-200 2021年7月5日
  • S7-200 PLC 扩展TD400C?

    由于CPU224XP自身集成的两个通信口一个用来做modbus通信,另一个用来做自由口通信了,现在想再连接一个TD400C,可以用EM277连接吗?EM277支持的通信协议都有什么…

    SIMATIC S7-200 2020年10月31日
  • PID指令向导中的

    PID指令向导中的,过程变量和给定值是什么意思??分别怎么设置。求解,谢谢 最佳答案 、过程变量和给定值是什么意思?过程变量(实时检测值)即所调节过程中调节量的反馈值。例如在压力调…

    SIMATIC S7-200 2020年11月1日
  • 西门子200对0-1mpa的压力传感器分辨率是多少?

    西门子200对0-1mpa的压力传感器分辨率是多少? 最佳答案 如果是0~20mA输出或0~10V(0~5V),按楼上算法。如果有20%偏置(如4~20mA的信号),1/4096是…

    SIMATIC S7-200 2020年10月31日
  • 测温时使用普通模拟量EM231模块+变送器能否达到热电偶/RTD模块的精度?

    热电偶EM231模块可以选择热电偶类型,并提供冷端补偿,那么如果用普通EM231模块+标准信号变送器能否精确测温,达到与热电偶扩展模块相同或接近的精度呢? 最佳答案 这要看信号变送…

    SIMATIC S7-200 2017年11月1日
  • cpu214怎么与电脑链接

    我想把CPU里的程序上载到电脑里,可是软件总是读不带CPU,请问一下网络怎么设置,我对网络不熟,谢谢 问题补充:设备管理器上找不到PC/PPI的驱动,应该是需要安装驱动,各位大神可…

    SIMATIC S7-200 2021年7月5日
  • 用S7-200继电器输出驱动直流负载的时候也要在N端和L端接220VAC吗?

    如题.. 最佳答案 1、N和L是cpu的工作电源,这是cpu工作的最近本条件。你驱动什么样的负载都要把这个电源连接好才能驱动,否则cpu根本不工作的。 2、另外还有一个接…

    SIMATIC S7-200 2021年7月5日
  • 求电路 急急急 谢谢大家

    我现在用的是PIZ牌子的PN02 X3的安全继电器我组要一个急停和门锁和它相关  求接线图     …

    2020年10月31日
  • 西门子SMART 700 IE V3

    西门子SMART 700 IE V3屏里面怎么做一个按钮可以修改用户名和修改用户名下面的密码以及更改用户等级。!!还有用户登录按钮!!我现在做的只能点…

    SIMATIC S7-200 2017年5月31日