Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸

上传人:M****1 文档编号:491355878 上传时间:2023-12-04 格式:DOCX 页数:8 大小:94.65KB
返回 下载 相关 举报
Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸_第1页
第1页 / 共8页
Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸_第2页
第2页 / 共8页
Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸_第3页
第3页 / 共8页
Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸_第4页
第4页 / 共8页
Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸》由会员分享,可在线阅读,更多相关《Schneider-施耐德LEC使用技巧文集[第12讲]——施耐德电气XBTG系列触摸(8页珍藏版)》请在金锄头文库上搜索。

1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页Schneider-施耐德LEC使用技巧文集第12讲施耐德电气XBTG系列触摸屏应用中大量采集位信号的技巧1.前言在工业控制的实际应用中,触摸屏可能需要监控大量的I/O点等开关量数据,如果使用低速通讯方式(RS232/RS485)时,在触摸屏的某一页面上有几十点以上的类似数据,因通讯速度的限制,此页面的数据刷新耗时较长,可能在几秒到十几秒之间,施耐德电气的XBTG系列触摸屏与Twido、Micro及Premium等系列PLC组成的控制系统应用本文介绍的方法可以比较完美地解决这一问题。使用到的功能施耐德电气XBTG系

2、列触摸屏的变量数组功能及脚本语言,施耐德电气PLC(Twido/Micro/Premium)的字对象的抽取位。具体描述以施耐德电气的Twido系列PLC为例进行说明,在TwidoSoft软件中对硬件进行配置如图1。在触摸屏的某一页面需要监控PLC上的所有输入/输出点,在PLC的程序中加入相应的语句,如图2所示。在此段程序中完成将输入点I0.0I0.15共16个输入点的状态赋值给MW200,使用的是Twido的结构化对象功能,同样操作,将要在触摸屏上监控的所有变量放在MW200MW206共7个字变量中。在XBTG触摸屏一侧,因使用Modbus协议与PLC通讯,PLC中的I/O无法被直接访问到,使

3、用这种方法可以解决这一问题。 图1 图2如果在程序中有中间位变量需要用这种方式送到触摸屏中,可以分为两种情况来考虑。首先,在做PLC的程序时,将相应的位信号放入到MW中,即使用MW字变量的位抽取功能,这样可以省去图2中的赋值语句部分,用法参考图3所示。其次,如果位变量用的是M,而M是连续的且符合以下规定:%Mx:y(x必须为8的整数倍),则可以用图4中的程序段完成。 图3在上面的程序段中都使用了施耐德电气的PLC所特有的功能:字变量的位抽取功能(即所有的MW字变量均可按位寻址)及变量的结构化功能。关于这些功能的进一步信息,请参考相应的手册。 图4在PLC的程序中完成相应的处理后,下面进入XBT

4、G触摸屏程序中。在触摸屏的变量表中建立与PLC关联的外部数据,如图5。 图5 在这一步操作中需要建立7个来自PLC的变量4020140208,命名为MW200MW208。再在变量表中建立内部数组变量,数组变量中的数据会直接出现在屏幕上,如图6。共需要建立7个以上对应PLC的I/O点的数组I0I3及Q0Q3,其中I1的数组大小定义为8(原因见脚本部分注释),其余定义为16。建立好的数组如图7。所需变量建立完毕后,在Vejio-Designer编程环境中建立一个如图8程序脚本,相应属性设置为:周期性脚本,刷新周期1秒。脚本中写入内容:/-/Script Created: 月 16, 2004/从P

5、LC通讯的字(MW)分解出位信号/主要用于减轻XBTG屏与PLC通讯的压力/程序编制及测试:张福,LEC,AUT,IA,Schneider/-int PlcInPut0,PlcInPut1,PlcInPut2,PlcInPut3;int PlcOutPut0,PlcOutPut1,PlcOutPut2;int i,BitValue;int tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6;PlcInPut0=PlcData.MW200.getIntValue(); /得到PLC输入I0.0I0.15状态字PlcInPut1=PlcData.MW201.getIntValue

6、(); /得到PLC输入I0.16I0.23状态字PlcInPut2=PlcData.MW202.getIntValue(); /得到PLC输入I1.0I1.15状态字PlcInPut3=PlcData.MW203.getIntValue(); /得到PLC输入I1.16I1.31状态字PlcOutPut0=PlcData.MW204.getIntValue(); /得到PLC输入Q0.0Q0.15状态字PlcOutPut1=PlcData.MW205.getIntValue(); /得到PLC输入Q2.0Q2.15状态字PlcOutPut2=PlcData.MW206.getIntValue

7、(); /得到PLC输入Q2.16Q2.31状态字BitValue=1;for (i=0;i16;i+) /一个做16次循环分解为位变量 if (i=0) BitValue=1; else BitValue=2*BitValue; /第i位 tmp0=PlcInPut0 & BitValue; /PLC输入字I0状态字第i位的值 tmp1=PlcInPut1 & BitValue; /PLC输入字I1状态字第i位的值 tmp2=PlcInPut2 & BitValue; /PLC输入字I2状态字第i位的值 tmp3=PlcInPut3 & BitValue; /PLC输入字I3状态字第i位的值

8、 tmp4=PlcOutPut0 & BitValue; /PLC输出字Q0状态字第i位的值 tmp5=PlcOutPut1 & BitValue; /PLC输出字Q1状态字第i位的值 tmp6=PlcOutPut2 & BitValue; /PLC输出字Q2状态字第i位的值 I0i.write(tmp0); /将得到的I0的位状态写入数组I0i I2i.write(tmp2); /将得到的I2的位状态写入数组I2i I3i.write(tmp3); /将得到的I3的位状态写入数组I3i Q0i.write(tmp4); /将得到的Q0的位状态写入数组Q0i Q1i.write(tmp5);

9、/将得到的Q1的位状态写入数组Q1i Q2i.write(tmp6); /将得到的Q2的位状态写入数组Q2i if(i9) /输入状态字I1只8位有效数据(I0.16I0.23) I1i.write(tmp1); /将得到的I1的位状态写入数组I1i 在上面的脚本程序中主要完成将来自PLC的包含了IO状态的变量字拆分,拆分后得到每一个IO点的状态,将得到的IO状态值写入到建立好的数组中。假定在触摸屏的某一页面上需要监控来自PLC的所有IO数据,画面如图8。画面中的IO状态指示均按图设置为相应的数组变量。 图7经过以上步骤,在触摸屏中采集PLC上的104个IO点的程序就全部做完,采集这104个IO数据占用的通讯内容只有7个字:4020140208,比常规方式节约通讯内容:104/715倍,经过实际测试,用本文介绍的方法比用直接访问PLC的位地址方式,在画面的刷新上约快78倍。另外,使用这种方法采集PLC的状态还有一个优点,如在程序调试中因某种原因需要改变触摸与PLC关联的变量时,只需改变4020140208共8个地址及脚本程序中的相应部分,改动的工作量非常小。第 1 页 共 1 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号