最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

LEC使用技巧文集[第11讲]——施耐德电气小型PLC中字变量MW的巧

IT圈 admin 32浏览 0评论

2024年5月12日发(作者:漆香梅)

Schneider-施耐德LEC使用技巧文集[第11讲]——施耐德电气小

型PLC中字变量MW的巧用

1.前言

有些使用者因为不是很熟悉施耐德电气的PLC,或者因为以前使用别的品牌的PLC所

形成的习惯,在使用施耐德电气的PLC(Twido/Micro)时,可能会使用大量的位对象

(%Mx)来作程序中的中间变量,这时可能会感觉PLC所提供的位对象(%M)太少,在

数目上满足不了用户的要求。

实际上施耐德电气的PLC(Twido/Micro)已经为使用者提供了另外一种解决方案,

使用字对象(%MWx)的字抽取位(%MWx:Xn,其中x代表%MW的编号,n代表%MWx

的某一位,可在0~15之间取值)来实现,这种方式其实与单片机中字的按位寻址是同一

个概念。以Twido系列PLC为例,使用字对象的抽取位可以实现3000x16共48000个位

对象,足够绝大部分场合的应用。

2.具体描述

使用字对象的抽取位不仅可以解决Twido/Micro系列PLC的位对象资源紧张的问题,

如果能够合理使用,还可以使用PLC的程序可读性更好,减小程序的长度,提高编程的效

率。

下面用一些实例程序结构来说明字对象的抽取位的使用以及它会带来的好处。为避免

对具体的其它品牌PLC的针对性,这里会用一般编程者的思路在TwidoSoft中实现别的品

牌的编程方式,而这种编程方式也是别的品牌的PLC所仅能提供的。

在这里假定有一种设备使用的I/O点为12DI/8DO,设备本身有三种运行方式:手动

运行、半自动运行与全自动运行。在三种运行方式下都对8个输出点进行操作,这样,PLC

的程序中对每一个输出点都至少要提供3个位对象来做为中间变量。

如果有多个输出点,而每个输出点都占用3个或3个以上的中间变量,那么这些中间

变量就很难使其有一定的便于记忆或分类的方法,这种情况下,编程时会花费大量的时间

去考虑中间变量的使用,比如,需要查证一下准备使用的某个中间变量是否已经在前面的

程序中使用过了,这样势必会中断正在进行的编程思路。同时在最终对输出点的汇总时也

存在同样的问题:必须到程序中去查找某一输出点都对应了那些中间变量,再把这些中间

变量并联产生最终输出。如果在查找某一输出点的中间变量时有所遗漏,那么程序的动作

难免会有缺损。

下面,来用字对象的抽取位来实现一段比上面程序复杂的要求,对比两种方式的效果。

在做具体编程之前,最好能对程序中会使用的输出点的中间变量做一些规划,这些规划本

身在施耐德电气的实现中,花费的时间与精力是很少的。可能的变量定义表格如下:

在这张变量规划表格中,需要编程者记忆的关系很少:%Q0.0对应%MW600(%Qx

与%MWx有一一对应的递增关系),手动对应的是%MWx的X0~X4,半自动对应的

是%MWx的X5~X9,全自动对应的是%MWx的X10~X15,这些对应关系的规律性很强,

并且很简单,对于记忆来讲基本没有负担,同时,只知道其中一个输出点的对应中间变量,

其余的自然就知道了。

对于较简单的程序,可能有的点需要几个中间变量,有的输出点只需要一两个中间变

量,甚至有的输出点不需要中间变量,但在做程序时,都可以按照规律与划分变量区,反

正用字对象抽取位实现的位对象的资源丰富,这时,需要考虑的是如何让这些变量具有一

定的规律,以便在编程时带来方便。

有了上面的变量对应关系,在编程时要使用中间变量的时候,基本上可以做到信手拈

来(规律自在心中),不会因为去查证某一中间变量是否已经使用过,而中断编程者的本来

非常流畅的编程思路。

当你在这种顺畅的编程境界中自由发挥时,是不是有些许的快意呢?在这里,我可以

负责任地告诉你,这还仅仅是开始,更令你赞叹的功能请看下文分解。

编程编到需要把中间变量汇总到最终的输出点时,常规的思路是去把那些可能每个输

出点都有不同数目的中间变量找出来,理顺与之对应的令人头痛的关系,并把它们按照那

些复杂的关系并联起来,产生最终的输出,如果你还会按照以前的编程方式去如此实现,

上面介绍的方法同样可以使用,但你毕竟还是有点落入俗套。看看施耐德电气的PLC为你

准备的去繁存简的新思路:上面使用了字对象的位抽取功能来实现中间位对象,那么,现

在到了反其道而行之的时候了,做输出汇总时,也可以把它们当作一个整体来考虑,如

果%MWx的值不为0,那么说明%MWx中的某一位或某几位是高电平,这样,对输出点

操作可以是:

上面的程序利用的是PLC的比较指令,这四行程序,如果用常规方式去,那可能也只

有四行,更多的可能是有十几行或几十行。重要的是,基本上不需要再去程序里去查找那

些对应关系,也不会发生某个中间变量遗失的可能。

如果程序因某种原因做了改动,某些输出点的中间变量多了几个,在这种实现方式中,

不需要去输出汇总的地方再把那些增加的变量并上去,使程序的维护性更高。

如果过了很长时间,需要重新阅读原来的程序,用这种思路做的程序,具有更好的可

读性,很容易把在程序中出现的某一中间变量与它对应的输出点联系起来。

在施耐德电气的PLC中,还有另外一种完全相反的操作:位对象或字对象的结构化处

理(把多个位或字当成一个整体来处理),灵活的这种方式,同样可能使程序具有灵活便捷

的功能,这方面的使用使用者可以自己尝试去探索。

怎么样,施耐德电气的PLC的功能是不是让你有些心动?那就找个机会来试用一下吧!

2024年5月12日发(作者:漆香梅)

Schneider-施耐德LEC使用技巧文集[第11讲]——施耐德电气小

型PLC中字变量MW的巧用

1.前言

有些使用者因为不是很熟悉施耐德电气的PLC,或者因为以前使用别的品牌的PLC所

形成的习惯,在使用施耐德电气的PLC(Twido/Micro)时,可能会使用大量的位对象

(%Mx)来作程序中的中间变量,这时可能会感觉PLC所提供的位对象(%M)太少,在

数目上满足不了用户的要求。

实际上施耐德电气的PLC(Twido/Micro)已经为使用者提供了另外一种解决方案,

使用字对象(%MWx)的字抽取位(%MWx:Xn,其中x代表%MW的编号,n代表%MWx

的某一位,可在0~15之间取值)来实现,这种方式其实与单片机中字的按位寻址是同一

个概念。以Twido系列PLC为例,使用字对象的抽取位可以实现3000x16共48000个位

对象,足够绝大部分场合的应用。

2.具体描述

使用字对象的抽取位不仅可以解决Twido/Micro系列PLC的位对象资源紧张的问题,

如果能够合理使用,还可以使用PLC的程序可读性更好,减小程序的长度,提高编程的效

率。

下面用一些实例程序结构来说明字对象的抽取位的使用以及它会带来的好处。为避免

对具体的其它品牌PLC的针对性,这里会用一般编程者的思路在TwidoSoft中实现别的品

牌的编程方式,而这种编程方式也是别的品牌的PLC所仅能提供的。

在这里假定有一种设备使用的I/O点为12DI/8DO,设备本身有三种运行方式:手动

运行、半自动运行与全自动运行。在三种运行方式下都对8个输出点进行操作,这样,PLC

的程序中对每一个输出点都至少要提供3个位对象来做为中间变量。

如果有多个输出点,而每个输出点都占用3个或3个以上的中间变量,那么这些中间

变量就很难使其有一定的便于记忆或分类的方法,这种情况下,编程时会花费大量的时间

去考虑中间变量的使用,比如,需要查证一下准备使用的某个中间变量是否已经在前面的

程序中使用过了,这样势必会中断正在进行的编程思路。同时在最终对输出点的汇总时也

存在同样的问题:必须到程序中去查找某一输出点都对应了那些中间变量,再把这些中间

变量并联产生最终输出。如果在查找某一输出点的中间变量时有所遗漏,那么程序的动作

难免会有缺损。

下面,来用字对象的抽取位来实现一段比上面程序复杂的要求,对比两种方式的效果。

在做具体编程之前,最好能对程序中会使用的输出点的中间变量做一些规划,这些规划本

身在施耐德电气的实现中,花费的时间与精力是很少的。可能的变量定义表格如下:

在这张变量规划表格中,需要编程者记忆的关系很少:%Q0.0对应%MW600(%Qx

与%MWx有一一对应的递增关系),手动对应的是%MWx的X0~X4,半自动对应的

是%MWx的X5~X9,全自动对应的是%MWx的X10~X15,这些对应关系的规律性很强,

并且很简单,对于记忆来讲基本没有负担,同时,只知道其中一个输出点的对应中间变量,

其余的自然就知道了。

对于较简单的程序,可能有的点需要几个中间变量,有的输出点只需要一两个中间变

量,甚至有的输出点不需要中间变量,但在做程序时,都可以按照规律与划分变量区,反

正用字对象抽取位实现的位对象的资源丰富,这时,需要考虑的是如何让这些变量具有一

定的规律,以便在编程时带来方便。

有了上面的变量对应关系,在编程时要使用中间变量的时候,基本上可以做到信手拈

来(规律自在心中),不会因为去查证某一中间变量是否已经使用过,而中断编程者的本来

非常流畅的编程思路。

当你在这种顺畅的编程境界中自由发挥时,是不是有些许的快意呢?在这里,我可以

负责任地告诉你,这还仅仅是开始,更令你赞叹的功能请看下文分解。

编程编到需要把中间变量汇总到最终的输出点时,常规的思路是去把那些可能每个输

出点都有不同数目的中间变量找出来,理顺与之对应的令人头痛的关系,并把它们按照那

些复杂的关系并联起来,产生最终的输出,如果你还会按照以前的编程方式去如此实现,

上面介绍的方法同样可以使用,但你毕竟还是有点落入俗套。看看施耐德电气的PLC为你

准备的去繁存简的新思路:上面使用了字对象的位抽取功能来实现中间位对象,那么,现

在到了反其道而行之的时候了,做输出汇总时,也可以把它们当作一个整体来考虑,如

果%MWx的值不为0,那么说明%MWx中的某一位或某几位是高电平,这样,对输出点

操作可以是:

上面的程序利用的是PLC的比较指令,这四行程序,如果用常规方式去,那可能也只

有四行,更多的可能是有十几行或几十行。重要的是,基本上不需要再去程序里去查找那

些对应关系,也不会发生某个中间变量遗失的可能。

如果程序因某种原因做了改动,某些输出点的中间变量多了几个,在这种实现方式中,

不需要去输出汇总的地方再把那些增加的变量并上去,使程序的维护性更高。

如果过了很长时间,需要重新阅读原来的程序,用这种思路做的程序,具有更好的可

读性,很容易把在程序中出现的某一中间变量与它对应的输出点联系起来。

在施耐德电气的PLC中,还有另外一种完全相反的操作:位对象或字对象的结构化处

理(把多个位或字当成一个整体来处理),灵活的这种方式,同样可能使程序具有灵活便捷

的功能,这方面的使用使用者可以自己尝试去探索。

怎么样,施耐德电气的PLC的功能是不是让你有些心动?那就找个机会来试用一下吧!

发布评论

评论列表 (0)

  1. 暂无评论