UNPKG

s7-scl-gen

Version:

S7 PLC SCL 代码自动生成

130 lines (102 loc) 5.27 kB
--- #CPU: AS1 # 指示属于哪一个CPU #feature: timer # 指示本配置为生成 timer 代码 name: AS1-timer # 相当于上面2条被注释的指令 # 关于timer # 每一个计时器的DB有以下内容上传至HMI: # - enable 允许计时 # - reset 计时清零,本字段自动复位 # - count 计时总秒数,本字段可HMI更改以改变计时数值 # - hours 计时小时数,本字段可HMI更改以改变计时数值 # - minutes 计时分钟秒数,本字段可HMI更改以改变计时数值 # - seconds 计时秒数,本字段可HMI更改以改变计时数值 # 额外代码 includes: symbols: # timer文档已有2个内置符号,其内容由本程序自动生成: # - [Timer_Proc, FB520] 计时器主处理函数 # - [Timer_Loop, FC520] 主循环调用FC,将这个加入OB1中 # 可以在对上述内置符号的地址进行更改,只要重新定义就可以了,注意保持名称一致 list: # 计时器列表 - comment: 泵运行时间 # 类型:字符串 # timer数据块 # 类型: S7符号定义 | S7符号引用 DB: [pump_runtime, DB501] # 允许信号,为假时停止计时,为真时继续计时 # BOOL 类型:S7符号定义|S7符号引用|SCL表达式 enable: [DI04-01, I12.0] # 由泵的运行信号控制计时 # 重置,为真时将计时清零 # BOOL 类型:S7符号定义|S7符号引用|SCL表达式 reset: 'NOT "DI04-01"' # 泵停止时计时清零 # BOOL 类型:S7符号定义|S7符号引用|SCL表达式 PPS: [DI04-02, I12.1] # 由硬件输入秒脉冲 - comment: 信号发送器 DB: [signal_timer, DB502] enable: '"sender".work_flag' # 注意,转换器不对SCL表达式做检查 PPS: GPS.PPS # 注意,转换器不对SCL表达式做检查 # 没有reset参数,计时会一直累计下去。可通过HMI清零 - comment: 风机运行时间 DB: [fan_runtime, DB503] # 如省略 enable 参数,可由HMI控制计时 # 使用计数器生成,要求每个 timer 的 PPS 参数必须赋值一个秒脉冲输入信号 # 如省略 PPS 参数,转换器会自动采用内置时钟存储器 "Clock_1Hz",但有一个前提: # 必须在CPU中打开时钟存储器,并必须在CPU配置文档中打开对应的 "Clock_Byte" 内置符号 # 如果上一行前提不满足,在step7中编译代码时会出错。 # 用户自写SCL代码,放在循环的开始和结束处。 loop_begin: |- // 这里的代码将在 Timer_Loop 循环开始时执行 loop_end: |- // 这里的代码将在 Timer_Loop 循环结束时执行 options : # 选项,非必需,无需要时可以全部删除或注释掉。 # output_file : 'example.scl' --- # 内容与 AS1-timer 相同,仅仅是CPU中的平台不一样。 name: AS2-timer # 关于timer # 每一个计时器的DB有以下内容上传至HMI: # - enable 允许计时 # - reset 计时清零,本字段自动复位 # - count 计时总秒数,本字段可HMI更改以改变计时数值 # - hours 计时小时数,本字段可HMI更改以改变计时数值 # - minutes 计时分钟秒数,本字段可HMI更改以改变计时数值 # - seconds 计时秒数,本字段可HMI更改以改变计时数值 # 额外代码 includes: symbols: # timer文档已有2个内置符号,其内容由本程序自动生成: # - [Timer_Proc, FB520] 计时器主处理函数 # - [Timer_Loop, FC520] 主循环调用FC,将这个加入OB1中 # 可以在对上述内置符号的地址进行更改,只要重新定义就可以了,注意保持名称一致 list: # 计时器列表 - comment: 泵运行时间 # 类型:字符串 # timer数据块 # 类型: S7符号定义 | S7符号引用 DB: [pump_runtime, DB501] # 允许信号,为假时停止计时,为真时继续计时 # BOOL 类型:S7符号定义|S7符号引用|SCL表达式 enable: [DI04-01, I12.0] # 由泵的运行信号控制计时 # 重置,为真时将计时清零 # BOOL 类型:S7符号定义|S7符号引用|SCL表达式 reset: 'NOT "DI04-01"' # 泵停止时计时清零 # BOOL 类型:S7符号定义|S7符号引用|SCL表达式 PPS: [DI04-02, I12.1] # 由硬件输入秒脉冲 - comment: 信号发送器 DB: [signal_timer, DB502] enable: '"sender".work_flag' # 注意,转换器不对SCL表达式做检查 PPS: GPS.PPS # 注意,转换器不对SCL表达式做检查 # 没有reset参数,计时会一直累计下去。可通过HMI清零 - comment: 风机运行时间 DB: [fan_runtime, DB503] # 如省略 enable 参数,可由HMI控制计时 # 使用计数器生成,要求每个 timer 的 PPS 参数必须赋值一个秒脉冲输入信号 # 如省略 PPS 参数,转换器会自动采用内置时钟存储器 "Clock_1Hz",但有一个前提: # 必须在CPU中打开时钟存储器,并必须在CPU配置文档中打开对应的 "Clock_Byte" 内置符号 # 如果上一行前提不满足,在step7中编译代码时会出错。 # 用户自写SCL代码,放在循环的开始和结束处。 loop_begin: |- // 这里的代码将在 Timer_Loop 循环开始时执行 loop_end: |- // 这里的代码将在 Timer_Loop 循环结束时执行 options : # 选项,非必需,无需要时可以全部删除或注释掉。 # output_file : 'example.scl' ...