帮助文档

工业物联网网关配置软件教程——[脚本编辑]

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 



苏ICP备17056864号-1