s7-scl-gen
Version:
S7 PLC SCL 代码自动生成
118 lines (106 loc) • 4.1 kB
YAML
#CPU: AS1 # 指示 CPU 名称是 AS1
#feature: RP # 指示本配置为生成 RP 代码
name: AS1-RP # 相当于上面2条被注释的指令
# 要求 step7 预先引入 SFB3`TP` SFB4`TON` SFB5`TOF`
symbols:
# RP 文档已有 2 个内置符号,其内容由本程序自动生成:
# - [DP, FB3] 防颤(debounce)边沿脉冲
# - [CP, FB4] 边沿脉冲
# - [RP_Loop, FC521] 主循环调用FC,将这个加入OB1中
# 可以在对上述内置符号的地址进行更改,只要重新定义就可以了,注意保持名称一致
list:
# 以下举例6种类型的延时或脉冲
- comment: 溢出延时报警
DB: [overflow, DB50]
type: onDelay
input: [overflowsignal, I22.0] # 溢出信号
$time: TIME#3M # 延时时长
output: [OFAlarm, Q22.0] # 溢出报警
- comment: 风扇延时关闭
DB: [resetFan, DB+]
type: offDelay
input: OFAlarm.Q # 溢出信号
$time: TIME#1h # 延时1小时关闭风扇
output: [FanRun, Q22.1] # 风扇控制
- comment: 烘干延时
DB: [drywork, DB+]
type: onPulse
input: [onfetch, I22.2] # 有进件
$time: TIME#10M # 烘干10分钟
output: [dryon, Q22.2] # 启动烘干
- comment: 涨潮退潮通知
DB: [tidenotice, DB+]
type: changePulse
input: [tidesignal, I22.3] # 潮水状态
$time: TIME#1h # 通知1小时
output: [turnonsound, Q22.3] # 启动音响
- comment: 声控灯光
DB: [on_sound_light, DB+]
type: onDPulse
input: [onsound, I22.4] # 有人声
$time: 120000 # 光亮时长,可以直接用毫秒数
output: [lighton, Q22.4] # 亮灯
- comment: 泵状态屏蔽联锁
DB: [pumpCD, DB+]
type: changeDPulse
input: [pump_run, I22.5] # 泵运行
$time: 300000 # 屏蔽联锁时间
# 用户自写SCL代码,放在循环的开始和结束处。
loop_begin: |-
// 这里的代码将在 RP_Loop 循环开始时执行
loop_end: |-
// 这里的代码将在 RP_Loop 循环结束时执行
# 内容与 AS1-RP 相同,仅仅是CPU中的平台不一样。
name: AS2-RP
# 要求 step7 预先引入 SFB3`TP` SFB4`TON` SFB5`TOF`
symbols:
# RP 文档已有 2 个内置符号,其内容由本程序自动生成:
# - [DP, FB3] 防颤(debounce)边沿脉冲
# - [CP, FB4] 边沿脉冲
# - [RP_Loop, FC521] 主循环调用FC,将这个加入OB1中
# 可以在对上述内置符号的地址进行更改,只要重新定义就可以了,注意保持名称一致
list:
# 以下举例6种类型的延时或脉冲
- comment: 溢出延时报警
DB: [overflow, DB50]
type: onDelay
input: [overflowsignal, I22.0] # 溢出信号
$time: TIME#3M # 延时时长
output: [OFAlarm, Q22.0] # 溢出报警
- comment: 风扇延时关闭
DB: [resetFan, DB+]
type: offDelay
input: OFAlarm.Q # 溢出信号
$time: TIME#1h # 延时1小时关闭风扇
output: [FanRun, Q22.1] # 风扇控制
- comment: 烘干延时
DB: [drywork, DB+]
type: onPulse
input: [onfetch, I22.2] # 有进件
$time: TIME#10M # 烘干10分钟
output: [dryon, Q22.2] # 启动烘干
- comment: 涨潮退潮通知
DB: [tidenotice, DB+]
type: changePulse
input: [tidesignal, I22.3] # 潮水状态
$time: TIME#1h # 通知1小时
output: [turnonsound, Q22.3] # 启动音响
- comment: 声控灯光
DB: [on_sound_light, DB+]
type: onDPulse
input: [onsound, I22.4] # 有人声
$time: 120000 # 光亮时长,可以直接用毫秒数
output: [lighton, Q22.4] # 亮灯
- comment: 泵状态屏蔽联锁
DB: [pumpCD, DB+]
type: changeDPulse
input: [pump_run, I22.5] # 泵运行
$time: 300000 # 屏蔽联锁时间
# 用户自写SCL代码,放在循环的开始和结束处。
loop_begin: |-
// 这里的代码将在 RP_Loop 循环开始时执行
loop_end: |-
// 这里的代码将在 RP_Loop 循环结束时执行
...