跟我一起玩200smart PLC 带参数的子程序---循环左移

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    9111
  • 精华

    157
  • 被关注

    1473

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

跟我一起玩200smart PLC 带参数的子程序---循环左移

14203

10

2017-04-23 09:23:47

跟我一起玩200smart PLC

带参数的子程序---循环左移

    前天,有一个网友在找答案中提问,如何编辑200  PLC带功能参数的子程序?这个问题一直来大家都在热烈地讨论中。今天,我借于网友的提问,做了一个简单的程序以方便大家对此类问题的参考、借鉴。

这个带功能参数的子程序编辑起来并不复杂,大致的意思是在200 smart 子程序的编辑,并在主程序或子程序中多次调用。正如有一位网友说的那样,手工编程其中的魅力就是让用户充满无限的想象空间,让用户乐此不彼地去探寻其中。

编程过程:

1)  打开软件编辑器,在子程序中右键重新命名“循环左移位子程序”,打开变量编辑器,定义事先计划好的根据具体控制要求的一些局部变量,变量类型及数据类型,图示:


2)  在该子程序编辑区,编辑这个循环左移位控制程序。

2.0)初始化数据,并定义启动移动1位的准备初值;

2.1)设置该循环左移位子程序停止输出;

2.2)编辑执行循环左移位指令;

上述几步可以循环进行定义、修改局部变量的输入、输出、输入_输出、内部临时变量,以达到带功能参数子程序多次调用的要求,“L”局部变量存储区地址系统会根据用户定义的数据类型自动生成数据地址号,对于寻址可以是位、字节、字、双字、字符串等,最大64个(其中4个归系统自用)字节接口数据范围,最大接口参数允许建立16个输入或输出参数。 

图示:


因为我电脑里安装的是V2.1版本软件,使用在变量地址区会有红色波浪线,这个属于正常现象。

3)  在主程序编辑区,首先初始化大致所使用到的一些地址区,当然在后续的编程过程中可以做适当的修改,然后就是调用自己编辑后的子程序,先插入一个试试程序的运行情况,并按子程序的数据类型,填入实际地址(参数)图示:


将程序编译、保存、下载到plc,运行plc后,启动M0.0控制位,让程序循环,看输出QW0的状态运行如何,图示:


打开“状态图表”方便监控需要状态程序,能够按之前的控制思路循环左移,ok!

4)  再建拖拽一个子程序看看,是否能够正常运行,图示:


打开“状态图表”监控,图示:


至此,带功能参数的子程序测试结束,本想结束了话题,但我还是想把这个中间过程中的一些问题拿出来回顾一下。

首先,我在调试时,因为是经常性地修改、完善程序,一些中间变量M的值会有“残存”在新的程序段中的可能(修改前的值保持到修改后),这个需要大家引起注意,我下载时“块”和“选项”均采用全部勾选的,使用程序的初始化相当重要,以免引起不必要的麻烦。图示:


   其次,编辑带功能参数的子程序的逻辑关系比单独编辑子程序更需要严谨,上面的程序我开始把停止移位的那段程序写在循环左移的最后面(网络段2的程序写到网络段3位置),当多次调用时,程序会出错,原因是当然是多次调用时数据的传递引起。最后,当需要编辑带功能参数的子程序建议先编辑一个基本的子程序,调试完成后,根据这个子程序所需要分配的接口关系,从简到繁逐步深入。

编写200 smart带功能参数的子程序,主要注意的是对“OUT/TEMP”变量的定义及使用。对于“OUT”变量需要固定一个数值;对于“TEMP”内部变量当然需要遵循先赋值后使用的原则。这个仅仅是我个人在应用时的一些认识,希望本例能够对初次入门者有所帮助。


跟我一起玩200smart PLC 带参数的子程序---循环左移 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。