s7-scl-gen
Version:
S7 PLC SCL 代码自动生成
173 lines (154 loc) • 6.4 kB
YAML
#CPU: AS1 # 指示属于哪一个CPU
#feature: motor # 指示本配置为生成 motor 代码
name: AS1-motor # 相当于上面2条被注释的指令
symbols:
# 系统已有2个内置符号,其内容由本程序自动生成:
# - [Motor_Proc, FB513] 电机主处理函数
# - [Motor_Loop, FC513] 主调用函数
# 可以在对上述内置符号的地址进行更改,只要重新定义就可以了,注意保持名称一致
# 以下为自定义符号
- [DI05-01, M4.0]
- [DI05-02, M+]
- [DI05-03, M+]
- [DI05-04, M+]
- [DI05-05, M+]
- [DI05-06, M+]
- [DI05-07, M+]
- [DI05-08, M+]
- [DO05-01, M8.0]
- [DO05-02, M+]
- [DO05-03, M+]
- [DO05-04, M+]
- [DO05-05, M+]
- [DO05-06, M+]
- [DO05-07, M+]
- [DO05-08, M+]
list :
# 没有允许信号时,enable可不赋值,其值默认为TRUE,如果要避免其它过程改变它,可以显式赋值为 true
# 没有远程信号时,remote可不赋值,其值默认为TRUE,如果要避免其它过程改变它,可以显式赋值为 true
# 没有故障信号时,error可不赋值,其值默认为FALSE,如果要避免其它过程改变它,可以显式赋值为 false
# 最全输入输出
- comment: A电机 # 类型: 字符串
# 类型: S7符号定义 | S7符号引用
DB: [PUMP-001A, DB91] # DB块
# 以下4项类型: S7符号定义 | S7符号引用 | SCL表达式
enable: DI05-01 # 允许运行,(比如已蓄能、高压到位等)
run: DI05-02 # 运行状态
error: DI05-03 # 电机故障输入
remote: DI05-04 # 电机远程就地操作模式
# 以下为BOOL字面量
$stateless: false # 指示为无状态电机,正常省略,默认为false
# 操作返回延时,可省略,默认2000
# 类型: null | 整数字面量 | TIME字面量
# 该设置用于等待电机改变状态的时间,超时后撤回信号并指示启停失败。
# 当为整数值时代表单位毫秒
$over_time: 1000
# 以下7项类型: S7符号定义 | S7符号引用 | SCL表达式
# 需要保证可赋值性
run_action: DO05-01 # 接非自保持线路,控制启停
start_action: DO05-02 # 启电机线路,设备侧自保持
stop_action: DO05-03 # 停电机线路
estop_action: DO05-04 # 紧急停机线路
run_command: HMI.run_cmd
stop_command: HMI.stop_cmd
estop_command: HMI.estop_cmd
# 常用输入输出
- comment: B电机
DB: [PUMP-001B, DB+]
enable: DI05-05
run: DI05-06
error: DI05-07
remote: DI05-08
start_action: DO05-05
stop_action: DO05-06
# 最少输入输出
- comment: C电机
DB: [PUMP-001C, DB+]
# 省略 error(默认FALSE) remote(默认TRUE) 参数时,必须保证PLC运行时不被改变
$stateless: true # 指示没有运行状态
run_action: DO05-08 # run_action参数启停电机
# 用户自写SCL代码,放在循环的开始和结束处。
loop_begin: |-
// 这里的代码将在 Motor_Loop 循环开始时执行
loop_end: |-
// 这里的代码将在 Motor_Loop 循环结束时执行
options : # 选项,非必需,无需要时可以全部删除或注释掉。
# output_file : 'example.scl'
# 内容与 AS1-motor 相同,仅仅是CPU中的平台不一样。
name: AS2-motor
symbols:
# 系统已有2个内置符号,其内容由本程序自动生成:
# - [Motor_Proc, FB513] 电机主处理函数
# - [Motor_Loop, FC513] 主调用函数
# 可以在对上述内置符号的地址进行更改,只要重新定义就可以了,注意保持名称一致
# 以下为自定义符号
- [DI05-01, M4.0]
- [DI05-02, M+]
- [DI05-03, M+]
- [DI05-04, M+]
- [DI05-05, M+]
- [DI05-06, M+]
- [DI05-07, M+]
- [DI05-08, M+]
- [DO05-01, M8.0]
- [DO05-02, M+]
- [DO05-03, M+]
- [DO05-04, M+]
- [DO05-05, M+]
- [DO05-06, M+]
- [DO05-07, M+]
- [DO05-08, M+]
list :
# 没有允许信号时,enable可不赋值,其值默认为TRUE,如果要避免其它过程改变它,可以显式赋值为 true
# 没有远程信号时,remote可不赋值,其值默认为TRUE,如果要避免其它过程改变它,可以显式赋值为 true
# 没有故障信号时,error可不赋值,其值默认为FALSE,如果要避免其它过程改变它,可以显式赋值为 false
# 最全输入输出
- comment: A电机 # 类型: 字符串
# 类型: S7符号定义 | S7符号引用
DB: [PUMP-001A, DB91] # DB块
# 以下4项类型: S7符号定义 | S7符号引用 | SCL表达式
enable: DI05-01 # 允许运行,(比如已蓄能、高压到位等)
run: DI05-02 # 运行状态
error: DI05-03 # 电机故障输入
remote: DI05-04 # 电机远程就地操作模式
# 以下为BOOL字面量
$stateless: false # 指示为无状态电机,正常省略,默认为false
# 操作返回延时,可省略,默认2000
# 类型: null | 整数字面量 | TIME字面量
# 该设置用于等待电机改变状态的时间,超时后撤回信号并指示启停失败。
# 当为整数值时代表单位毫秒
$over_time: 1000
# 以下7项类型: S7符号定义 | S7符号引用 | SCL表达式
# 需要保证可赋值性
run_action: DO05-01 # 接非自保持线路,控制启停
start_action: DO05-02 # 启电机线路,设备侧自保持
stop_action: DO05-03 # 停电机线路
estop_action: DO05-04 # 紧急停机线路
run_command: HMI.run_cmd
stop_command: HMI.stop_cmd
estop_command: HMI.estop_cmd
# 常用输入输出
- comment: B电机
DB: [PUMP-001B, DB+]
enable: DI05-05
run: DI05-06
error: DI05-07
remote: DI05-08
start_action: DO05-05
stop_action: DO05-06
# 最少输入输出
- comment: C电机
DB: [PUMP-001C, DB+]
# 省略 error(默认FALSE) remote(默认TRUE) 参数时,必须保证PLC运行时不被改变
$stateless: true # 指示没有运行状态
run_action: DO05-08 # run_action参数启停电机
# 用户自写SCL代码,放在循环的开始和结束处。
loop_begin: |-
// 这里的代码将在 Motor_Loop 循环开始时执行
loop_end: |-
// 这里的代码将在 Motor_Loop 循环结束时执行
options : # 选项,非必需,无需要时可以全部删除或注释掉。
# output_file : 'example.scl'
...