citect2018使用CitectVBA定制过程分析器1
这是我在新浪博客发的学习笔记,在这边也发一次,避免丢失。
citect2018使用CitectVBA定制过程分析器1_来自金沙江的小鱼_新浪博客 (sina.com.cn)
我以前自学过使用cicode定制过程分析器,不过仅仅做了一些简单的功能。见下面的链接
citect中还有CitectVBA脚本,也可以定制过程分析器效果,今晚通过参照手册做练习,记录一下过程分析器如何在程序逻辑中定制。
新建一个Citect 2018项目,这个练习项目是在一个空的过程分析其上添加板,添加趋势笔,链接变量,定义坐标范围,加载游标。
新建项目之后,新建一个页面main,在页面上放置一个过程分析器,编号为AN4,放置一个按钮。
新建5个REAL类型的内部变量A1,A2,A3,A4,A5,新建5个趋势变量A1,A2,A3,A4,A5关联前面5个变量。新建一个cicode,用于给变量赋初始值。
FUNCTION V_INI()
A1=10
A2=20
A3=30
A4=40
A5=50
END
再新建一个CitectVBA程序,用于定制过程分析器。新建两个趋势板,分别装入这5个趋势
Sub pa_ini()
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen1 As Object
Dim hCursor As Object
Set pa = main_AN4
Sub pa_ini()
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen1 As Object
Dim hCursor As Object
Set pa = main_AN4
CicodeCallOpen("V_INI") ' 加载变量赋值
'加载游标
Set hCursor=pa.cursors.create("cursor1",500)
hCursor.visible=true
'创建趋势板
Set hPane=pa.panes.create("我的趋势板1")
'在第一个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板1的1#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A1"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-200
hPen1.PutVerticalAxisSpan 0.0,200.0
'设定横坐标范围0周0天8小时0分0秒0毫秒
hPen1.SetDefaultSpan 0,0,8,0,0,0 '没有效果
'设定趋势笔的颜色,暂时没找到函数
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
'趋势板1下面添加趋势笔2
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板1的2#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A2"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-220
hPen1.PutVerticalAxisSpan 0.0,220.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0 '好像没有用
'设定趋势笔的颜色,暂时没找到函数
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
' 添加趋势板2
Set hPane=pa.panes.create("我的趋势板2")
'在第二个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板2的1#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A3"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-230
hPen1.PutVerticalAxisSpan 0.0,230.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0
'设定趋势笔的颜色
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
'定义趋势板2的趋势笔2
'在第二个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板2的2#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A4"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-240
hPen1.PutVerticalAxisSpan 0.0,240.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0
'设定趋势笔的颜色
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
'定义趋势板2的趋势笔3
'在第二个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板2的3#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A5"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-250
hPen1.PutVerticalAxisSpan 0.0,250.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0
'设定趋势笔的颜色
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
End Sub
'加载游标
Set hCursor=pa.cursors.create("cursor1",500)
hCursor.visible=true
'创建趋势板
Set hPane=pa.panes.create("我的趋势板1")
'在第一个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板1的1#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A1"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-200
hPen1.PutVerticalAxisSpan 0.0,200.0
'设定横坐标范围0周0天8小时0分0秒0毫秒
hPen1.SetDefaultSpan 0,0,8,0,0,0 '没有效果
'设定趋势笔的颜色,暂时没找到函数
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
'趋势板1下面添加趋势笔2
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板1的2#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A2"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-220
hPen1.PutVerticalAxisSpan 0.0,220.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0 '好像没有用
'设定趋势笔的颜色,暂时没找到函数
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
' 添加趋势板2
Set hPane=pa.panes.create("我的趋势板2")
'在第二个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
hPen1.Name="趋势板2的1#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A3"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-230
hPen1.PutVerticalAxisSpan 0.0,230.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0
'设定趋势笔的颜色
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
'定义趋势板2的趋势笔2
'在第二个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板2的2#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A4"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-240
hPen1.PutVerticalAxisSpan 0.0,240.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0
'设定趋势笔的颜色
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
'定义趋势板2的趋势笔3
'在第二个面板上添加一个模拟量趋势笔,
'pentype数字4097表示模拟量,4098表示0和1的bool,4099表示为状态的笔
'3表示使用name作为趋势笔的名字
Set hPen1=hPane.pens.create(4097,3)
'msgbox "ok"
hPen1.Name="趋势板2的3#模拟量趋势笔"
'关联趋势变量
hPen1.DataPoint="A5"
'不是即时趋势
hPen1.InstantTrend=false
'跳转到当前时间
hPen1.GotoNow
'设定纵坐标范围0-250
hPen1.PutVerticalAxisSpan 0.0,250.0
'设定横坐标范围8小时0分0秒
hPen1.SetDefaultSpan 0,0,8,0,0,0
'设定趋势笔的颜色
'定义趋势笔的采样周期为500ms
hPen1.SamplePeriod=500
End Sub
按钮的鼠标点击事件使用civba call pa_ini()调用上面的CitectVBA程序,就可以定制过程分析器了。