变量询址编程法,充分利用循环的方式实现同样类型的多项任务

已锁定

觅鹏智能

西门子1847工业学习平台

  • 帖子

    148
  • 精华

    0
  • 被关注

    25

论坛等级:侠圣

注册时间:2010-04-28

白金 白金 如何晋级?

变量询址编程法,充分利用循环的方式实现同样类型的多项任务

1049

15

2017-03-11 00:19:26

首先举个要实现的简单例子,有1000台电机启停控制,每台电机的控制方式均相同,按下启动按钮,启动电机,在启动输出秒后,无运行反馈信号,报合闸失败故障,若有运行信号,则正常运行,按下停止按钮,输出关闭,设备停止。

很多人的常规方法是这样考虑的,因为有启动计时,只能用FB来做,FB把功能写好后,有1000台电机就调用1000次相应的FB块,每个FB块对应一个电机数据。

现在我刚学到一个新方法,所以跟大家分享一下,其思路是这样的,

首先要建一个数据类型UDT(也就是结构变量),把一个电机所有用到的变量信息建到UDT里;

第二,建一个全局数据块DB1,在数据块中建立变量,类型为刚才建的UDT;

第三,建一个FC1块,建立临时变量,顺序和名称跟UDT中一致,然后再建IN型的变量,Num  int型,电机数量,DBH,int型,数据块编号,RST,Bool型,复位,TIM_Base,Bool型,秒时基。

第四,编写FC块,首先打开DBH编号指定的数据块,然后初始化指针,开启循环,如下

      L     #DBH                        //传送DB块号
      T     #DBHT

      OPN   DB [#DBHT]                  //打开数据块
      LAR1  P#DBX 0.0                   //初始化指针
      L     #NUM                        //设置电机数量
Loop: T     #COUNT

在循环内,首先调DB1中第一个电机的数据到FC的临时变量中,如下

    L     B [AR1,P#0.0]               //读取Motor第一个字节内容
      T     LB     0
      L     W [AR1,P#2.0]               //读取报警信息
      T     LW     2
      L     W [AR1,P#4.0]

只写部分哦

然后用FC中的临时变量写电机启动功能程序代码

写完成后,再把临时变量的值返还到DB1的第一个电机数据中,如下

    L     LB     0                    // 返回信息
      T     B [AR1,P#0.0]
      L     LW     2
      T     W [AR1,P#2.0]               //返回报警信息
      L     LW     4
      T     W [AR1,P#4.0]               //返回屏蔽报警信息
      L     LW     6
      T     W [AR1,P#6.0]               //返回信息
      L     #STATE


最后,指针偏移到下一个循环,如下

    +AR1  P#50.0                      //偏置字节数
      L     #COUNT
      LOOP  Loop

FC块编写完成

第五,在OB1中调用FC1,在相应的管脚上填入数据,如下

  CALL  FC1
       NUM      :=1000             //电机数量
       DBH      :=1                   //数据块DB1 的编号1
       RST      :="RESET"         //复位
       TIM_BASE :="1秒时钟"  //秒脉冲

接下来就是要把输入和输出信号跟DB1对接就可以了

这样就可以实现完成1000个电机的控制



变量询址编程法,充分利用循环的方式实现同样类型的多项任务 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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