脚本编辑

脚本编辑用于用户完成某些自定义的逻辑运算或者流程处理,用于实现PLC无法实现的上位机功能,例如综合计算或者AGC/AVC等功能

界面如下所示:

script1

序号 工具名称 功能 使用方法
1 打开脚本 从脚本菜单打开脚本 点击后在弹出的列表框内选择要编辑的脚本
2 添加输入 添加输入量 点击后在弹出的对话框内选择要添加的输入变量
3 删除输入 删除输入量 选择需要删除的变量,然后点击删除
4 添加输出 添加输出量 点击后在弹出的对话框内选择要添加的输入变量
5 删除输出 删除输出量 选择需要删除的变量,然后点击删除
6 保存 保存脚本 点击后保存脚本
7 运行/停止 运行或停止脚本 点击后运行或停止脚本
8 刷新/停止 刷新或停止刷新 点击后刷新或停止刷新脚本
9 退出 退出脚本编辑 退出脚本编辑
10 输入变量区域 输入变量区域 当前输入变量区域
11 输出变量区域 输出变量区域 当前输出变量区域
12 脚本区域 脚本编辑区域 脚本编辑区域

添加删除输入或输出变量时需要首先点击第8个按钮停止刷新脚本

脚本概述,脚本采用PYTHON语言,其工作流程如下所示

工作流程如下:

stateDiagram [*] --> 添加输入变量 添加输入变量 --> 添加输出变量 添加输出变量 --> 编写脚本 编写脚本 --> 保存脚本 保存脚本 --> 运行调试脚本 运行调试脚本 --> [*] : 正常 运行调试脚本 --> 编写脚本 : 异常

使用帮助

  • 读取输入测点数值放入变量 in0,in1,in2 ......
    (in0,in1,in2,...) = await db.getInputValue()

  • 设置输出测点 out0测值 12.3,out1测值 23.4,以此类推
    await db.setOutValue(['out0,out1,out2'...],[12.3,23.4,33.3,...])

  • 生成新报警,报警内容自定义,报警类别为'操作','越复限','动作',报警级别为'紧急','重要','普通'
    await db.newAlarm('报警内容','报警类别','报警级别')

主程序


import sys,os,asyncio
from scriptengine import *

async def engine(db) :
  try :
    # 在这里写你的代码
    pass
  except Exception as e :
    await db.newAlarm('脚本' + __name__ + '错误:' + str(e),'操作','重要')
    print(str(e))

# 主程序入口,请勿修改
async def main(alm,ins,outs,points) :
  db = SCDatabase(alm,ins,outs,points)

  while True :
    await engine(db)
    await asyncio.sleep(1)

以第一个图片为例,我们添加了两个输入量,定义为in0, in1 ,添加了一个输出变量,定义为out0
我们在脚本中执行了下列逻辑


(in0,in1) = await db.getInputValue()
v = in0 + in1*2
await db.setOutValue(['out0'], [v])

第一行表示从数据库读取输入量放入in0, in1 两个变量中,
第二行表示将in0的值加上2倍的in1的值放入v变量中,
第三行表示设置输出变量out0的测值为v

完整代码如下所示,程序其他部分请勿修改。


import sys,os,asyncio
from scriptengine import *

async def engine(db) :
  try :
    # 在这里写你的代码
    (in0,in1) = await db.getInputValue()
    v = in0 + in1*2
    await db.setOutValue(['out0'], [v])
  except Exception as e :
    await db.newAlarm('脚本' + __name__ + '错误:' + str(e),'操作','重要')
    print(str(e))

# 主程序入口,请勿修改
async def main(alm,ins,outs,points) :
  db = SCDatabase(alm,ins,outs,points)

  while True :
    await engine(db)
    await asyncio.sleep(1)

设置脚本属性

script2

序号 工具名称 功能 使用方法
1 自动启动 设置自动启动 设置自动启动或不启动
2 删除脚本 删除脚本 删除当前脚本