MHGW软件支持标准VBScript脚本,全局脚本分为定时执行、触发执行两种动作。
工程管理器全局脚本
脚本编辑器
3.5.1定时执行
根据设定的定时周期,执行脚本,注意启动时定时执行自动执行一次。
3.5.2触发执行
根据设定的触发条件,执行脚本,可以选择触发条件为“值从0变非0时执行”和“值从非0变0时执行”。
3.5.3VBScript
VBScript脚本语言详见VBScript.CHM。
3.5.4脚本函数
GetPointValue
该函数用来返回变量当前值。
语法格式:COleVariant GetPointValueA(LPCTSTR strPointName)
例程:实现按钮按下去后弹出MSGBOX,MSGBOX内容为变量“W-3X0”当前值。
Dim v
v=document.GetPointValue("W-3X0")
msgbox v
SetPointValue
该函数用来设置可写变量值。
语法格式:void SetPointValue(LPCTSTR strPointName,COleVariant& Value,BOOL bUnsigned)
例程:实现按钮按下去后,为有符号变量“W-3X0”设置为3。
Dim v
document.SetPointValue "W-3X0",3,FALSE
注意:第二个参数为COleVariant,在调用SetPointValue函数时,要根据变量类型对应的进行转换。如为短整型,则需要通过CInt函数强制转换。参阅VBScript中的CBool(布尔型),CLng(长整型),CDbl(双精度),CSng(单精度),CStr(字符串),第三个参数指是否为无符号,如果变量为无符号短整型和无符号长整型,需要将此变量置为True。
RebootHMI
该函数用来重新启动网关。
SetSystemTimeAuto
该函数用来设置时间。
语法格式:void SetSystemTimeAuto(short nYear,short nMonth,short nDay,short nHour,short nMinute,short nSecond)。
例程:要在对象名"Obj12"的按钮对象中按下脚本中设置时间为“2012-2-3 15:20:31”。
document. SetSystemTimeAuto 2012,2,3,15,20,31
SetupConnection
该函数用来设置串口通讯参数。
语法格式:BOOL SetupConnection(int m_sPort,long m_nBaud, int m_nDataBits, int m_nParity, int m_nStopBits)。
m_sPort:串口号,1~N,支持的最大串口数。
m_nBaud:波特率,300,600,1200,4800,9600,19200,38400,57600,115200。
m_nDataBits:数据位,7,8。
m_nParity:校验位,0,无校验,1,奇校验,2,偶校验。
m_nStopBits:0,1位,1,1.5位,2,2位。
例程:设置串口1,波特率9600,数据位8位,无校验,停止位1
SetupConnection 1,9600,8,0,0
OpenConnection
该函数用来打开串口。
语法格式:BOOL OpenConnection(int m_sPort,int m_sProtocolNo)。
m_sPort:串口号,1~N,支持的最大串口数。
m_sProtocolNo:协议号,0,默认,1,厂家1,2,厂家2
例程:打开串口1,协议号0
OpenConnection 1,0
WriteCommBlock
该函数用来操作串口发送数据。
语法格式:BOOL WriteCommBlock(int m_sPort,LPSTR block,long num)。
m_sPort:串口号,1~N,支持的最大串口数。
block:发送的数据
num:发送的数据长度,字节数。
例程: Dim v
v="1 3 0 0 0 1 132 10" '16进制 01 03 00 00 00 01 84 0A
WriteCommBlock 1,v,len(v)
ReadCommBlock
该函数用来操作串口接收数据。
语法格式:VARIANT ReadCommBlock(int m_sPort,int nMaxLength,int timeout)。
m_sPort:串口号,1~N,支持的最大串口数。
nMaxLength:要接收的数据长度,字节数。
timeout:超时,毫秒。
例程: Dim v, rtnBuf
v="1 3 0 0 0 1 132 10" '16进制 01 03 00 00 00 01 84 0A
WriteCommBlock 1,v,len(v)
rtnBuf= ReadCommBlock(1,7,500)
CloseConnection
该函数用来关闭串口。
语法格式:void CloseConnection(int m_sPort)。
m_sPort:串口号,1~N,支持的最大串口数。
例程:关闭串口1
CloseConnection(1)
ClearCom
该函数用来清串口缓冲区。
语法格式:void ClearCom(int m_sPort)。
m_sPort:串口号,1~N,支持的最大串口数。
例程:清串口1缓冲区
ClearCom(1)
Crc16
该函数用来返回Crc16校验。
语法格式:unsigned short Crc16(unsigned char* buf, unsigned short len)。
ChkSum
该函数用来返回累加和校验。
语法格式:unsigned short ChkSum(unsigned char* buf, unsigned short len)。
SetBit
该函数用来设置数值(二进制)中的某一位为1。
语法格式:VARIANT SetBit(VARIANT Value,int nBit)。注意nBit从0开始
例程:
SetBit document.GetPointValue("tt"),0
ClrBit
该函数用来设置数值(二进制)中的某一位为0。
语法格式:VARIANT ClrBit (VARIANT Value,int nBit)。注意nBit从0开始
例程:
ClrBit document.GetPointValue("tt"),0
GetBit
该函数用来获得数值(二进制)中的某一位值。
语法格式:VARIANT GetBit(VARIANT Value,int nBit)。注意nBit从0开始
例程:
GetBit document.GetPointValue("tt"),0
联系人:司先生
手机:18951610826
电话:025-86210539
邮箱:18951610826@126.com
地址: 南京邮电大学物联网大厦8楼