北京市西门子(官方授权)技术支持服务商

更新:2025-01-19 08:00 编号:26670708 发布IP:120.229.159.246 浏览:3次
发布企业
广东湘恒智能科技有限公司商铺
认证
资质核验:
已通过营业执照认证
入驻顺企:
2
主体名称:
广东湘恒智能科技有限公司
组织机构代码:
91441304MAC3TWY11U
报价
请来电询价
西门子PLC
西门子伺服电机
西门子触摸屏
西门子电缆
西门子变频器
西门子模块
关键词
华南西门子总代理,华中西门子总代理,华东西门子总代理,华北西门子总代理,西北西门子总代理
所在地
惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
联系电话
13510737515
手机
13185520415
联系人
董海波  请说明来自顺企网,优惠更多
请卖家联系我
13185520415

详细介绍

如图8这样的程序结构,在多个地方都出现对Q0.0写入值。当然这样各种的值都是不同的,相同的话就不必多重了。我们应该小心处理逻辑关系,避免出现不希望的值。


再看一个例子,如图9所示:

图片

图9程序


程序中把输入量传给输出量。当发现输出量是负数的时候,把0传给输出量。也就是说限制输出量Zui小值是0,不可以再小了。


双线圈和多重赋值都是自定义库程序范围中一个非常重要的思想。不能很好理解这两个概念,将会对制作库程序产生很大的障碍。



五、间接寻址

在操作数引脚(实参)上直接使用常数、juedui地址、符号这三种方式是编程中使用Zui多写法。还有符号定义的常量和间接寻址两种方式相对比较少去使用。如图10所示:

图片

图10程序


间接寻址包括制作指针和使用指针。

指针是指向目的区域目的地址的标记。目前,CPU除了AC、HC、L区不能作为目的区域其他区域都可以间接寻址。


在后面的文章中,都只将V区作为间接寻址的目的地址做说明或者做例子。这并不表示不能寻址到其余区域。


例子中的 ”T40”的设定值填写的是一个间接寻址。意思就是说这个位置不是一个具体的设定时间,具体的值位于这个指针所指的地方。而这个地方当时是什么值,那么计时器的设定值就是什么值。

简单讲就是“你要的东西用纸(址)包着”和“你要的东西用纸(址)写着”。


现在就围绕这句话,聊一聊间接寻址。

说说这张包东西的纸(址),不是什么地方都可以做的。什么材料可以做这张纸?材料可以是全部V区、全部L区、AC区的AC1 AC2AC3可以装载指针。并且只能用连续的4个字节组成的双字装载指针。起始地址不介意是奇数还是偶数。


要用纸包着东西,必须把东西放进去纸里面。MOVW 100 VW0 这里 ”100” 就是东西, ”VW0”就是一张纸。小的东西就用一张纸包(一个字节),很大的东西就用四张纸拼成一张大纸包(一个双字)。用这件东西的人只要找到这张纸直接就得到里面的东西。


你要的东西用纸写着,那就是说事前必然有人在纸上已经写了字,后面才能有人看见。MOVD &VB400 VD4 。这里”VB400” 就是写在上面的字,”&” 符号是说明写着这几个字是一个地址,不是普普通通的字。”VD4”就是一张大纸。这就是制作指针。


手里拿着这张纸后,自然要根据这张纸的指引做一些事。如图10程序Zui后一行指令。执行一个计时器指令时使用了” *VD2” 这张纸……,如果只写 ”VD2”,那么就好像是使用 ”VD2” 的值作为计时器设定值,事实并非如此。这里 ”VD2”前面带*号。星号表示 ”VD2” 里面的值是指引真正包含设定值的地址。由于 ”VD2” 里面先前一个指令写入了 ”&VB0”,这张纸其实是指引计时器到 ”VW0”找寻设定值。这就是使用指针。当然这是因为是在定时器的时间设置用到指针,而这个设置变量的类型是字。而如果在MOVB输入用到相同指针”VD2”,那么输入的就是 ”VB0” 而不是 ”VW0”了,因为MOVB指令需要的输入变量的是字节,也就是指针保存的是起始地址,具体使用的变量取决于指令需要。


使用间接寻址的好处在于通过计算改变指针的值,可以寻址到附近的任何地址。当指针指向VB10的时候,把指针增加10,那么指针就会指向VB20。寻址就改变到VB20。指针再减少3,那么寻址就会找到VB17。对于一片连续的V空间只要知道第一个地址,就可以寻址到连续的第n个地址。


在以后的子程序使用中将会非常多地用到间接寻址的。


第二篇:带参数子程序的制作

子程序是整个程序的一个片段。根据编程者的需求,把一部分程序归入到一个子程序里面,完成相关的功能。整个子程序可以根据用户程序的逻辑选择调用或者不调用。调用的话就按照扫描次序扫描一次子程序,回到调用处。不调用的话就等于程序没有了这部分片段。在其他地方出现调用这个子程序的话,子程序又得到一次运行。PLC并没有限制用户调用子程序的次数,只调用一次就要增加一点扫描时间。必要时候就调用,没必要的时候调用了也不产生什么效益。


偶尔会看见有人在问:有几个数据需要求平均值。PLC有没有求平均的指令啊?


不好意思,200 SMART PLC没有计算平均指令。还是好好地编程写吧。


下面我试试用两种方式的子程序完成这个多个值的累加。至于除法求平均就不介绍了。现以4个字变量计算总和为例介绍。


程序要求:VW0、VW2、VW4、VW6四个值求和,结果放在VW100中。


看看先用比较简单的方法,先完成要求的功能,如图1所示:

图片

图1程序


在子程序里面就是几个很简单的加法指令。而在主程序调用子程序的前后,加上了一些简单的传送指令。


先看子程序。子程序中三个加法指令把四个MW累加到MW8中。前面四个MW中并没有什么值。累加之后的结果MW8也没有什么实际意义。


再看主程序。题目要求的四个已知值,在调用子程序之前就传到了子程序使用的MW地址。此时调用子程序,这些MW就有了指定值。经过子程序的运算,结果就放置在MW8。回到调用处,再把子程序的值传到题目要求的地方,完成题目的要求。


在这个例子中,主程序的这个网络可以多次使用。在需要的地方就按照上面例子的方法使用子程序就可以实现求和的作用。子程序只是作为一个计算法则,而这个法则又是很简单的几个计算。当遇到比较复杂的算法的时候,并且又有机会多次调用。不妨可以试试这个程序结构。这个结构有一个优势,就是任何品牌的PLC都可以互通。哪怕就是20年前的PLC也一样可以用这个方法。当今的200SMARTPLC显然不推荐使用这样的方式了。这个方式的编程,只是用于说明带参数子程序的一部分参数传递原理,将在日后详细介绍。


这种调用方式存在一些问题:

1.调用子程序的前后,需要把参数传送到指定的地址,供子程序使用。

这些地址成为了这一个子程序的专用地址;每次调用子程序都要做这个事情。


2.子程序占用了公共资源;

当一个程序有很多个子程序的时候,消耗在这两方面的工作和资源就会很多。当一个子程序工作需要很多个参数的时候,要写很多MOV指令,也要占用很多公共资源M地址。对于200SMARTPLC,M区只有32个字节,如果需要32字节以上的区域,那就只能在比较大的V区找地方了。而当子程序很多,或者子程序是不同编程者的话,就可能会有不同子程序使用到了相同的区域。这样必然需要修改一些地址,使地址不发生重复。


假如有办法解决上述两个问题,将是一个非常美满的结果。办法是有的。先不说这个。


现在,再用现在的方式写一个子程序完成求和的功能。四个步骤就可以创建一个带参数的子程序。

【EN】有能流表示执行这个子程序。没有能流的话将从子程序门口经过,不进入子程序。一个子程序就算没有任何参数都会有这个接口的。


【点输入1】下边也是一个能流型的接口,表示这里有一个开关量的能流输入。


当鼠标指向这个指令块的时候,会弹出一个框,如图3所示。这里说明了所有参数的变量类型(in;in/out;out)和数据类型(b;B;W;D)。

图片

图 3


【字输入】从弹框得知这是一个字型的输入参数。这里接口必须填写一个字型的变量或者常数。


【点输入2】这也是一个布尔量的输入参数,因为有其余类型的参数分割,导致没有从开始处连续排列布尔量的输入参数,这个布尔量输入也显示为数据接口形式。


【字节入出】从弹框得知这是一个输入输出双向的参数,需要填入一个字节型的变量。


【字输出】这个参数在右侧,位置上已经表明这是一个输出型的参数。


输入型的参数将安排在左侧的Zui上方,并且如果上方有连续的开关量,都会以能流的形式连接这个参数。是数据型的输入参数接口。下方是双向的参数接口。右边一律是数据接口形式连接所有输出参数。


上级程序就是通过这样的接口把子程序所需的参数传入到子程序的,再进入到子程序里面。看看子程序方面,得到的参数将会是如何出现的。


观察上面图2这个变量表。自从建立了这个变量表开始,子程序里面的L地址的前面部分就已经成为了子程序参数的载体。L地址从第一个字节开始,往后安排IN参数;IN/OUT参数;OUT参数。按照字节为Zui小占用单位来安排能流接口的参数,从L0.0开始向更高位连续安排,EN不占用地址。对于布尔量,一个布尔量点占用整个字节,八个以内的连续布尔量点也占用一个字节。下一个非布尔量参数或者不同类型变量(IN、IN/OUT、OUT)从下一个字节开始安排。【点输入1】参数分配到L0.0,【字输入】参数分配到LW1。【字节入出】参数分配到LB4。子程序使用上级传递的参数就只要读取这些L地址就可以得到。


外面的情况了解了,里面的情况也了解了,参数传递……没说完,还有Zui不为人知的一部分。


——中间的过程。


中间过程就像一份快递的工作,在上级下级程序之间搬运数据。只要子程序被调用,那么快递就会把指定的数据传送到子程序内。子程序结束后,快递又会把指定的参数传送到上级程序的接口。要是没有接口参数自然没有这个岗位。


所属分类:中国电工电气网 / PLC
关于广东湘恒智能科技有限公司商铺首页 | 更多产品 | 联系方式 | 黄页介绍
成立日期2022年11月13日
主营产品西门子PLC 变频器 伺服电机 人机界面 触摸屏 线缆 DP接头
经营范围西门子PLC 变频器 伺服电机 人机界面 触摸屏 线缆 DP接头
公司简介广东湘恒智能科技有限公司主要从事工业自动化产品的集成,销售与维修。致力于为您提供在机械、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。公司本着“以人矢志创新、追求卓越”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成、销售,拥有丰富的自动为本、科 ...
公司新闻
顺企网 | 公司 | 黄页 | 产品 | 采购 | 资讯 | 免费注册 轻松建站
免责声明:本站信息由广东湘恒智能科技有限公司自行发布,交易请核实资质,谨防诈骗,如有侵权请联系我们   法律声明  联系顺企网
© 11467.com 顺企网 版权所有
ICP备案: 粤B2-20160116 / 粤ICP备12079258号 / 粤公网安备 44030702000007号 / 互联网药品信息许可证:(粤)—经营性—2023—0112