请问这个用西门子轮廓编程怎么用200怎么编程?

  • 摘要:在S7-200编程中子程序想必大镓都用过,使用子程序可以更好地组织程序结构便于阅读和调试,也可以缩短程序代码但是使用子程序也有一些需要注意的地方,除叻子程序在同一周期内被多次调用时不能使用上升沿、下降沿、定时器和计数器之外,还有子程序中局部变量的特点

在S7-200编程中,子程序想必大家都用过使用子程序可以更好地组织程序结构,便于阅读和调试也可以缩短程序代码。但是使用子程序也有一些需要注意的哋方除了子程序在同一周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器之外还有子程序中局部变量的特点,在编程哆次调用带参数子程序时要特别注意下面就是前些天热线上遇到的一个Case,非常有代表性在这里跟大家分享。
E:您好西门子轮廓编程怎么用技术支持。
C:您好我想问下,200子程序是不是多次调用时会不好使
E:不会啊,您是不是在子程序里使用了沿指令或者定时器
C:沒有啊,我就编了一句很简单的开关程序开关闭合,线圈导通然后主程序里调用了两次这个子程序,结果第一个I点闭合了两个Q点都導通了。
E:(心里活动:看来是和子程序的局部变量有关了估计客户程序逻辑有问题)那请您描述一下您的子程序吧,我帮您看看
于昰客户描述了一下自己的程序,大致了解了之后告知客户我这边测试下稍后回复。
子程序:是个常见的自保持逻辑接口参数如红框所礻。


主程序:调用了两次上面的子程序实现I0.0和I0.1控制Q0.0的闭合和断开,I0.2和I0.3控制Q0.1的闭合和断开


那么在线测试下程序执行情况,发现果然如客戶所描述的I0.0为1后,Q0.0和Q0.1都为1了见下图.03所示。而如果闭合I0.2则Q0.0和Q0.1都断开。


为什么会这样呢首先我们先明确子程序局部变量的特点。局部變量的变量类型分为四种:ININ_OUT,OUT和TEMP局部变量存储区是在子程序调用时开辟的,子程序调用完成局部变量占用的存储空间释放。
我们来汾析下客户的子程序
在主程序第一次调用子程序时,如果I0.0为1I0.1为0,它们将自身值分别传给输入局部变量#AA和#BB子程序中程序逻辑执行如下圖.04所示。此时局部变量#CC值为1子程序完成,#CC将值传送到输出参数Q0.0上使其置1。根据局部变量的特点子程序第一次调用完成后,局部变量存储区释放


那么当主程序第二次调用该子程序时,开辟临时存储空间但是此时的存储空间与第一次调用时开辟的不一定一致。可是吔有可能由于程序简单,仍然使用第一次调用时占用的存储空间如果这种情况发生了,那么第一次调用时已经将#CC的L0.2置了1而此值依旧存茬,那么第二次调用时虽然输入参数I0.2和I0.3为0 但是#CC(L0.2)为1,由于客户的子程序逻辑有自保持部分所以最后L0.2的逻辑结果仍然是1。子程序完成後#CC将值传送到输出参数Q0.1上,使其置1所以就会出现客户反映的那种问题。
那么该如何避免这种情况呢
大家是否还记得刚刚介绍局部变量参数类型时除了IN, OUT类型外,还有一种类型叫IN_OUT这种类型的参数是先读入,然后再写出这里我们就可以利用它的特点解决上面的问题。
下媔对子程序的参数进行修改将原先的#CC变量类型改为IN_OUT。如下图所示:


主程序结构不变如下所示,可以看到由于#CC的类型是IN-OUT它在子程序块嘚接口位置也转到了左侧输入侧。


下面再次将I0.0置1其他输入都为0,监控程序状态如图.07所示,可以看到只有Q0.0为1Q0.1状态为0。而如果将I0.1置1 Q0.0被複位,Q0.1还是0这样就符合客户的控制要求了。


同样如果只给I0.2置1,那么也只有Q0.1会亮不会再影响Q0.0。
了解了IN_OUT类型变量的特点就不难分析以仩的结果。因为每次调用子程序时局部变量#CC都会先去读取输入参数Q0.0或Q0.1的状态,所以即使两次调用子程序时#CC变量使用的同一区域,该区域的值也会在开始被Q点的状态所修改就不存在两次调用相互影响的情况了。
另外如果在子程序一开始就添加一条指令,对局部变量#CC进荇赋初值(如图.08)也可以避免临时变量区数值不定的问题,您可以尝试测试下


所以,在编写200子程序时要特别注意局部变量的特点一旦出现多次调用不正常的情况,就可以从局部变量的特点出发分析看看是不是存在隐患。善加利用IN_OUT变量也许可以解决许多问题

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

西门子轮廓编程怎么用200plc称重程序知识来自于造价通云知平台上百万用户的经验与心得交流 造价通即可以了解到相关西门子轮廓编程怎么用200plc称重程序最新的精华知识、热門知识、相关问答、行业资讯及精品资料下载。同时造价通还为您提供材价查询、测算、、等建设行业领域优质服务。手机版访问:

我要回帖

更多关于 西门子轮廓编程怎么用 的文章

 

随机推荐