lcwlaile
级别: 探索解密
精华主题: 0
发帖数量: 39 个
工控威望: 174 点
下载积分: 618 分
在线时间: 29(小时)
注册时间: 2013-01-12
最后登录: 2016-06-28
查看lcwlaile的 主题 / 回贴
楼主  发表于: 2015-01-25 22:38
请问高手们,S7200中的各种类型数据直接具体是如何相互转换的。比如BTI指令,将一个8位数据转换成一个16位的数据。这两个数据类型的长度是不一样的,PLC 是如何实现转换的。还有DTI,DTR,BCDI,等等。在编程的时候又是如何确定使用哪一种数据类型呢?本菜鸟水平有限,希望能讲解的越详细越好。谢谢~
weisongyuan
永远年轻
级别: 网络英雄
精华主题: 0
发帖数量: 580 个
工控威望: 10116 点
下载积分: 1129 分
在线时间: 478(小时)
注册时间: 2013-08-13
最后登录: 2024-10-31
查看weisongyuan的 主题 / 回贴
1楼  发表于: 2015-01-26 00:11
  西门子S7-200可以按:位、字节、字、双字寻址,如V200.0 、VB200、 VW200、 VD200,还有4个累加器:AC0  AC1 AC2 AC3,AC0—AC3可以是字节、字、双字。一定注意的是:西门子与三菱、欧姆龙等的双字不同,三菱的一个双字的四个字节高低位的顺序是从右向左,即起始字节为低位,而西门子200的一个字、双字的高低字节是从左向右如:VD20——VW20 VW22——VB20VB21VB22VB23,VB23是VD20的低位字节。当进行算术计算时数据类型必须相同,这样就要进行数据转换,200有转换指令,打开编程软件可以看见,西门子200编程软件比较直观,所有指令都在指令树中:
[attachment=131716] [attachment=131716]   [attachment=131713]   [attachment=131714]  [attachment=131715]
[ 此帖被weisongyuan在2015-01-26 09:11重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(我心飞翔) 热心助人!
  • 永远年轻
    weisongyuan
    永远年轻
    级别: 网络英雄
    精华主题: 0
    发帖数量: 580 个
    工控威望: 10116 点
    下载积分: 1129 分
    在线时间: 478(小时)
    注册时间: 2013-08-13
    最后登录: 2024-10-31
    查看weisongyuan的 主题 / 回贴
    2楼  发表于: 2015-01-27 07:25
    呵呵呵 我给你的就是你想要的,数据长度的转换就是要用转换指令解决,各种类型的数据都可以根据你自己的需要转换,字节转换为字,字转换为双字,双字转换为实数,反之亦然。我给你的截图就是转换用的指令,你根本没看我给你的最后一个截图,我在网络都注释了指令的用途。你点击最下面的程序截图使其放大,就看的仔细了。第1、2张截图是一样的,显示200所有的功能,3、4是一样的就是用于存储器类型所有的转换指令的展开图,我想问你的是:你说的“PLC是如何把不同长度的数据相互转换的。比如字转换成双字,双字转换成字,具体的转换过程是什么样的。并不是问转换的指令。”我是真的不能理解,编程软件中的转换指令你不用,非要另外找一个途径解决。我可以负责任的告诉你:在西门子200中如果不使用转换指令 就想完成 字节、字、双字、实数及字符串之间的转换,除非你自己创建出200编程软件
    永远年轻
    weisongyuan
    永远年轻
    级别: 网络英雄
    精华主题: 0
    发帖数量: 580 个
    工控威望: 10116 点
    下载积分: 1129 分
    在线时间: 478(小时)
    注册时间: 2013-08-13
    最后登录: 2024-10-31
    查看weisongyuan的 主题 / 回贴
    3楼  发表于: 2015-01-29 10:24
    谢谢您的执着,我原来也没注意这个事情,想给你回答这个问题的时候才又找到教材查阅的。现在回答你的例子:如果是将字节转换为字,数据的保存是由转换后字的最低位依次向高位排列,未使用的位用0补充,如果是双字转换为字或者是字转换为字节也是这样,应该考虑的是转换的数据长度,(字节:-128—+127或0—255;字:-32768—+32767或者0—65535;双字:-2147483648—+2147483647或者0—4294966295,注意:S7200PLC使用的浮点数格式最多支持7个有效数字。尝试显示7个以上有效数字会显示进位错误))如果超出转换后的字或字节的最大数则超出的高位部分溢出,特殊辅助继电器置位。如:西门子200,当双字VD100 转换为字VW120 或者VW0 转换为VB 10,当转换后的数据超出转换后的VW120或者VB10的最大数值则只保留低位高位溢出,同时特殊继电器SM1.1置位
    [ 此帖被weisongyuan在2015-01-29 10:50重新编辑 ]
    本帖最近评分记录:
  • 下载积分:+1(lcwlaile) 真诚感谢!
  • 永远年轻