首页
学习
活动
专区
圈层
工具
发布

[技巧] S7-200smart阀门控制库的开发

需求分析

  • 工艺控制
    1. 可以联锁的投入/切除
    2. 可以手动开关阀门
    3. 可以实现自动状况下的联动控制
  • 安全保护
    1. 可以设定阀门开关报警的延时时间
    2. 可以实现阀门报警复位
  • 功能
    • 联锁控制功能
    • 单独开关功能
    • 报警及复位工

功能实现

数字量阀门控制

系统点表

地址

符号

变里类型 数据类型

1

EN

IN

800L

2

LO.0

联锁投切

IN

BOOL

3

L0.1

手动开阀

IN

B00L

4

L0.2

手动关阀

IN

80OL

5

L0.3

故障复位

IN

B00L

6

L0.4

联锁开阀

IN

B0OL

7

L0.5

开反馈

IN

B0OL

8

L0.6

关反馈

IN

B0OL

9

Lw1

开延时设定

IN

INT

10

Lw3

关延时设定

IN

INT

11

LD5

参数

IN

DINT

12

L9.0

开输出

IN_OUT

B0OL

13

L9.1

关输出

IN_OUT

B00L

14

L9.2

报警

IN_OUT

B0OL

地址

符号

变里类型

教据类型

注释

1

EN

IN

B0OL

2

L0.0

联锁投切

IN

BOOL

0年动,1自动

3

L0.1

故障复位

IN

BOOL

4

LD1

手动给定

IN

REAL

范围0.0~100.0

5

LD5

联锁给定

IN

REAL

范围0.0~100.0

6

Lw9

阀门反馈

IN

INT

里程0~27648

7

LW11

报警延时设定

IN

INT

单位秒

8

LD13

参数

IN

DINT

9

L17.0

报警

IN_OUT

BOOL

10

LW18

阀门输出

oUT

lNT

0~27648

P.S

为什么子程序的输出不正常? 这里首先举例一个子程序SBR_0,该子程序的接口声明一个INT类型的IN变量‘Pressure’和一个BOOL类型的OUT变量‘OPEN’,子程序中只有一个程序段,在程序段1中编写当输入Pressure数值大于500时将输出OPEN置位,如图. 子程序输出不正常 所示。

图. 子程序输出不正常 这样的子程序被调用后,当输入Pressure达到过500时,输出OPEN被置位;但当输入Pressure从未达到过500时,输出OPEN一直保持为一个未知的状态,可能是1,也可能是0。由于子程序的局部变量仅在本次调用时有效,且每次获取到的局部变量资源有一定的随机性,有可能已经具有一个随机的数据存储在该局部变量地址中,因此对于OUT类型的接口变量,必须保证每次调用程序都对其进行写操作,否则就是编程逻辑的不严密。当然,用户也可以考虑使用IN_OUT变量类型代替OUT变量类型。

下一篇
举报
领券