《PCS7与ABB的数据交换》.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PCS7与ABB的数据交换 * PM3线控制系统间硬件通讯方式及数据交换协议 DCS及传动采用ABB公司的800XA系统; 胶料制备系统为BVG公司提供,硬件为S7-300系统,软件为Step7+Wincc系统; MCS系统是Voith公司提供的,使用的是西门子的PCS7系统; DCS、传动系统因为同一控制平台,各控制器间通讯通过以太网通讯交换数据; MCS系统与ABB DCS、ABB 传动以及BVG系统间均采用DP Couple进行数据交换,协议商定采用WORD(16位无符号整数)形式进行传送数据。 为方便分析控制系统间数据交换,更好地维护控制系统,特编写本课件。 * 数据的位与类型 一个自然数,我们都以左高右低的原则来识别。如果只有一位,自然不存在高低位之说,但字节、字、双字等数据类型,则需要区分高低位。 * 数据的位与类型 一个自然数,我们都以左高右低的原则来识别。如果只有一位,自然不存在高低位之说,但字节、字、双字等数据类型,则需要区分高低位。 从上述示例可以看出,同一个位(如0.0位)在Byte、Word、Dword这三种不同数据类型中,分别处于第0、第8、第24位,发生了变化。 * WINCC与Step7的数据交换 WINCC与Step7的数据交换,大部分是通过过DB数据块进行。 在Step7编程中,我们常定义大量的Bool型变量,并集中存放到DB数据块中,用于同上位机的WINCC进行数据交换。 如果WINCC中也照样定义变量,将需要定义大量的变量,特别是在传统的STEP7+wincc 编程环境下,WINCC中的变量都需要手动一个个定义,工作量也将变得很大,所以我们常一次性读、写8位、16位、32位DB块中的数据,以减少WINCC中的变量数,提高效率。 因此,在WINCC中,我们需要读、写DB数据块中某一位的Bool变量值时,就变为读、写Byte、Word、DWord数据中的某一位了。 如果对不同类型数据的“位”的区别没搞明白,往往就会发生定“位”错误。 下面我们先以BVG辅料制备系统中施胶上料为例进行讲解。 * Step7中变量定义 例:在WINCC操作界面上,当MD401在运行时,MD405泵应该不可操作的(按钮为灰色)。 在STEP7中,MD405泵联锁状态变量存储在数据块DB135.DBX10.4中,当其为“1”时表示被联锁,即不可操作。WINCC中,创建了以双字变量“DB_Bit_CP1_DD8”变量对应DB135数据块中DBX8.0-11.7区域的所有32位数据。 * WINCC与Step7的数据交换 bit12位 * WINCC与Step7的数据交换 * WINCC与Step7的数据交换 在此例中,常见的错误有: 3:忘记在西门子系统中,是从“0”起数(有些系统,如ABB系统是“1”起数),错误结果:bit 13 1:不知规则,直接在DB135数据块中,从DBX8.0开始数,错误结果数成:bit 19 2:仅知道有高低位交换,但规则未理解透,于是在DB135数据块中,从DBX 11.7开始倒着数,错误结果:bit 11 * PCS7系统中Byte与Word互转 1:Byte转换为Word 由此例可以看出,“BY_W”这个CFC功能块输入管脚“Low”与“High”是指Word的低8位、高8位,对应上述转换图中的byte1(低)、byte0(高) * PCS7系统中Byte与Word互转 2:Word转换为Byte 由此例可以看出,“W_BY”这个CFC功能块输出管脚“Low”与“High”仍然是指Word的低8位、高8位,对应转换图中的byte1(低)、byte0(高) * ABB系统中转换功能块CONV介绍 在PM3线使用的ABB 800XA系统的CBM软件中,没有不涉及数据类型的二、十六进制数互转功能块,通讯一般用CONV功能块替代。 计算机规则:采用2的补码(Two's Complement)表示负数。 “CONV_BI”是将BOOL数转换为32位有符号整数(DINT),最高位(第32位)是符号位,遵循计算机规则。 “CONV_IB”则是将32位有符号整数(DINT)转换为BOOL数。输出结果:符号位“Sign”+输入值绝对值的转换结果。O[32]永远为0 因此如果最高位为“1”转换DINT后就变为负数,而“CONV_IB”块转换后的BOOL结果就变了, 结论:“CONV”转换功能用于控制逻辑的值转换通讯时,第32位必须为“0”,即不使用最高位。否则控制逻辑传递就会出错。 下面我们看一下使用具体的例子: ABB系统中转换功能块CONV介绍 I[32]为“0”时,各位数均能正确传递 C2=1:Bool转换为有符号整数 ABB系统中转换功能块CONV介绍 负数转换结果:以符号+正数表示 Sign

文档评论(0)

tangzhaoxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档