quantumPLC与南京德宏数采仪通讯,citect画面日期时间控件和复选框控件控制趋势交互功能

发布时间 2023-05-09 19:46:53作者: 来自金沙江的小鱼

这一篇笔记我在新浪博客记录过,在这里也记录一遍,新浪博客地址quantumPLC与南京德宏数采仪通讯,citect画面日期时间控件和复选框控件控制趋势交互功能_来自金沙江的小鱼_新浪博客 (sina.com.cn)

最近上级管理部门要求在现场生产控制计算机上新建一幅画面,生产关键参数趋势、环保监测数据趋势在一个趋势控件显示,保存五年,在趋势空间外部通过复选框控件可以设定显示/隐藏全部趋势,复选框来显示/隐藏单个趋势、设定趋势控件查询的开始时间和结束时间范围,还可以直接让趋势控件跳转到当前时间,趋势标签整齐排列。最终成品效果如下图:

与数采仪通讯使用unity编程,数采仪设定IP地址与PLC和上位机在同一个网段,地址是192.168.10.201,4321编码方式,unity程序如下:

上图把IP地址四个数字分配给四个byte变量

上图TCP_IP_ADDR功能块slot_ID指的是quantum PLC上用于通讯的模板槽号,现场实际是6#槽。如果是带TCP/IP的CPU模板,此处数值是254,注意后面的IP_B1至IP_B4与现场仪表设备的IP地址是反顺序的。

CREAD_REG功能块的SLAVEREG表示寄存器的偏移量,这个练习是从现场数采仪40071开始采集数据,所以偏移量是71,NO_REG是读取多少个WORD,现场项目需要读取22个WORD。我给输出部分REG_READ传输数值到一个整型数组变量,下标从71到92,正好对应现场仪表寄存器40071到40092,要注意这个数组变量必须分配一个PLC地址,COMM_CEMS_STATUS表示通讯状态,是一个word类型变量,数值含义可以查看帮助文件。
连续的WORD读取上来之后,需要拆分、组合,转换成实际的工程数值,由于数采仪编码4321模式,所以使用下图的方式对WORD进行组合,71是高字节,72低字节,组合成一个REAL数据。74是低字节,75是高字节,组合成一个REAL数据,以此类推。

 将所有需要的数据组合成real数值之后,在citect项目程序中建立变量标签,对应PLC地址,再建立趋势标签,对应变量标签。趋势标签可以定义趋势数据窜访的路径、趋势文件生成时间,趋势文件的个数,趋势数据采集的频率,这几个参数可以根据硬盘分区的大小来灵活设定。如果有双硬盘的话,后面的脚本可以定时将趋势数据备份到第二硬盘,一定程度上可以保障五年的数据存储要求。

 
下面是画面交互功能的实现的步骤
1. 在新建画面上放一排导航按钮,用于画面切换,这个好理解。
2. 对OCX控件注册,将空间文件拷贝到c:\windows\system32\路径下,使用regsvr32指令进行注册,还要运行一下注册表文件,那个注册表文件再我的其它博客有过介绍,使microsoft date and time picker控件和microsoft form 2.0 checkbox控件有效。
3. 在新建画面上放置microsoft date and time picker控件、microsoft form 2.0 checkbox控件、过程分析器控件。
4. 过程分析器控件上按照顺序配置趋势笔,这个简单不截图了。记下过程分析其的AN编号为4
5. 记下各checkbox控件的编号。
6. 新建citectVBA程序文件。新建过程分析器初始化sub
Sub PAIni() '趋势控件初始化,现时显示游标、数据板命名、趋势笔命名
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Dim hCursor As Object
Dim cb As Object
Set cb=HUANBAO_AN11
cb.value=true
Set cb=HUANBAO_AN13
cb.value=true
Set cb=HUANBAO_AN17
cb.value=true
Set cb=HUANBAO_AN19
cb.value=true
Set cb=HUANBAO_AN21
cb.value=true
Set cb=HUANBAO_AN23
cb.value=true
Set cb=HUANBAO_AN25
cb.value=true
Set cb=HUANBAO_AN27
cb.value=true
Set cb=HUANBAO_AN29
cb.value=true
Set cb=HUANBAO_AN31
cb.value=true
Set cb=HUANBAO_AN33
cb.value=true
Set cb=HUANBAO_AN35
cb.value=true
Set cb=HUANBAO_AN37
cb.value=true
Set cb=HUANBAO_AN39
cb.value=true
Set cb=HUANBAO_AN41
cb.value=true
Set cb=HUANBAO_AN43
cb.value=true
Set cb=HUANBAO_AN45
cb.value=true
Set cb=HUANBAO_AN47
cb.value=true
Set cb=HUANBAO_AN48
cb.value=true
Set pa=HUANBAO_AN4 '趋势控件
Set hCursor=pa.cursors.create("cursor1",500)
hCursor.visible=true
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
hPane.Name="1#2#焦炉干熄焦排放口数据"
Set hPens=hPane.Pens
Set hPen=hPens.item(1)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=40
hPen.Name="颗粒物"
Set hPen=hPens.item(2)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=40
hPen.Name="SO2"
Set hPen=hPens.item(3)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=90
hPen.Name="O2"
Set hPen=hPens.item(4)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=90
hPen.Name="流速"
Set hPen=hPens.item(5)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=140
hPen.Name="温度"
Set hPen=hPens.item(6)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=140
hPen.Name="压力"
Set hPen=hPens.item(7)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=190
hPen.Name="湿度"
Set hPen=hPens.item(8)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=190
hPen.Name="流量"
Set hPen=hPens.item(9)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=240
hPen.Name="提升机作业时间"
Set hPen=hPens.item(10)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=240
hPen.Name="提升机装载量"
Set hPen=hPens.item(11)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=290
hPen.Name="1#提升机提升电流"
Set hPen=hPens.item(12)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=290
hPen.Name="2#提升机提升电流"
Set hPen=hPens.item(13)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=340
hPen.Name="1#提升机提升走行电流"
Set hPen=hPens.item(14)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=340
hPen.Name="2#提升机提升走行电流"
Set hPen=hPens.item(15)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=390
hPen.Name="预存室压力"
Set hPen=hPens.item(16)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=390
hPen.Name="集尘电动阀开到位"
Set hPen=hPens.item(17)
hCursor.PenlabelX(hPen)=100
hCursor.PenlabelY(hPen)=440
hPen.Name="集尘电动阀关到位"
Set hPen=hPens.item(18)
hCursor.PenlabelX(hPen)=300
hCursor.PenlabelY(hPen)=440
hPen.Name="除尘风机电流"
pa.Objectview.visible=false
End Sub
这里面对趋势笔名称中文显示、趋势标签定位、复选框初始状态、显示游标及游标定位做了初始化。
在画面的“进入画面时”事件中使用cicode脚本调用这个citectVBA脚本
VbCallReturn(VbCallRun(vbcallopen("PAIni")))
 
7. “全选趋势”复选框编号为11,对选中和取消事件的citectVBA脚本如下:
Sub HUANBAO_AN11_Change()  '全选趋势复选框
Dim cb As Object
Set cb= HUANBAO_AN11
If cb.value Then '如果可见
Set cb=HUANBAO_AN13
cb.value=true
Set cb=HUANBAO_AN17
cb.value=true
Set cb=HUANBAO_AN19
cb.value=true
Set cb=HUANBAO_AN21
cb.value=true
Set cb=HUANBAO_AN23
cb.value=true
Set cb=HUANBAO_AN25
cb.value=true
Set cb=HUANBAO_AN27
cb.value=true
Set cb=HUANBAO_AN29
cb.value=true
Set cb=HUANBAO_AN31
cb.value=true
Set cb=HUANBAO_AN33
cb.value=true
Set cb=HUANBAO_AN35
cb.value=true
Set cb=HUANBAO_AN37
cb.value=true
Set cb=HUANBAO_AN39
cb.value=true
Set cb=HUANBAO_AN41
cb.value=true
Set cb=HUANBAO_AN43
cb.value=true
Set cb=HUANBAO_AN45
cb.value=true
Set cb=HUANBAO_AN47
cb.value=true
Set cb=HUANBAO_AN48
cb.value=true
Else
Set cb=HUANBAO_AN13
cb.value=false
Set cb=HUANBAO_AN17
cb.value=false
Set cb=HUANBAO_AN19
cb.value=false
Set cb=HUANBAO_AN21
cb.value=false
Set cb=HUANBAO_AN23
cb.value=false
Set cb=HUANBAO_AN25
cb.value=false
Set cb=HUANBAO_AN27
cb.value=false
Set cb=HUANBAO_AN29
cb.value=false
Set cb=HUANBAO_AN31
cb.value=false
Set cb=HUANBAO_AN33
cb.value=false
Set cb=HUANBAO_AN35
cb.value=false
Set cb=HUANBAO_AN37
cb.value=false
Set cb=HUANBAO_AN39
cb.value=false
Set cb=HUANBAO_AN41
cb.value=false
Set cb=HUANBAO_AN43
cb.value=false
Set cb=HUANBAO_AN45
cb.value=false
Set cb=HUANBAO_AN47
cb.value=false
Set cb=HUANBAO_AN48
cb.value=false
 
End If
End Sub
这个脚本影响其它单个趋势选中/取消复选框的选择状态
 
8. 单个趋势选择框事件的citectVBA脚本如下
Sub HUANBAO_AN13_Change() '趋势笔1-颗粒无物显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(1)
If HUANBAO_AN13.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN17_Change() '趋势笔2-SO2物显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(2)
If HUANBAO_AN17.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN19_Change() '趋势笔3-O2显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(3)
If HUANBAO_AN19.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN21_Change() '趋势笔4-流速显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(4)
If HUANBAO_AN21.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN23_Change() '趋势笔5-温度显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(5)
If HUANBAO_AN23.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN25_Change() '趋势笔6-压力显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(6)
If HUANBAO_AN25.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN27_Change() '趋势笔7-湿度显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(7)
If HUANBAO_AN27.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN29_Change() '趋势笔8-流量显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(8)
If HUANBAO_AN29.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN31_Change() '趋势笔9-提升机作业时间显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(9)
If HUANBAO_AN31.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN33_Change() '趋势笔10-提升机装载量显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(10)
If HUANBAO_AN33.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN35_Change() '趋势笔11-1#提升电流显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(11)
If HUANBAO_AN35.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN37_Change() '趋势笔12-2#提升电流显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(12)
If HUANBAO_AN37.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN39_Change() '趋势笔13-1#走行电流显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(13)
If HUANBAO_AN39.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN41_Change() '趋势笔13-2#走行电流显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(14)
If HUANBAO_AN41.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN43_Change() '趋势笔14-预存室压力显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(15)
If HUANBAO_AN43.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN45_Change() '趋势笔15-预存室电动阀开到位显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(16)
If HUANBAO_AN45.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN47_Change() '趋势笔16-预存室电动阀开关到位显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(17)
If HUANBAO_AN47.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
Sub HUANBAO_AN48_Change() '趋势笔16-除尘风机干流显示和隐藏
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
Set hPen=hPens.item(18)
If HUANBAO_AN48.value Then '如果可见
hPen.Visible=true
Else
hPen.Visible=false
End If
End Sub
 
9. 根据选择的开始时间和结束时间的查询citectVBA脚本如下,这里面要做一个容错检查,不能让开始日期晚于结束日期。由于脚本里面希望选择的时间默认为该日期的:0:0,系统里面又自动的+8小时,所以又一个根据选择的日期,将时间往昨天推8小时的脚本计算,由于查询历史趋势,不希望事件滚动,做了暂停功能。
'按照选择的时间查询趋势
Sub SearchTrend() '趋势按照开始时间和结束时间查询,趋势暂停
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Dim startDTPicker As Object
Dim endDTPicker As Object
Dim StartTime As date
Dim EndTime As date
Dim Year1 As Integer
Dim Month1 As Integer
Dim Day1 As Integer
Dim Year2 As Integer
Dim Month2 As Integer
Dim Day2 As Integer
Dim temp1 As Integer
Dim temp2 As Integer
Dim i As Integer
 
Set pa=HUANBAO_AN4  '趋势控件
Set startDTPicker =HUANBAO_AN7 '开始日期选择控件
Set endDTPicker =HUANBAO_AN9  '结束日期选择控件
 
If startDTPicker.value > endDTPicker.value Then
msgbox "开始日期不能晚于结束日期"
Else
'因为用户选择的日期时间属于UTC时间,与北京时间有8小时差距,这个版本的软件没有Citectvba函数直接转换,需要人工变成编程
Year1=startDTPicker.year
Month1=startDTPicker.month
day1=startDTPicker.day
Year2 = endDTPicker.year
Month2 =endDTPicker.month
Day2 =endDTPicker.day
temp1 = int(year1/4)
temp2=int(year2/4)
'计算开始时间前一天
If day1<>1 Then
day1=day1-1
End If
If day1=1 Then
Select Case month1
Case 1
day1=31
month1=12
Case 2
day1=31
month1=1
Case 4
day1=31
month1=3
Case 5
day1=30
month1=4
Case 6
day1=31
month1=5
Case 7
day1=30
month1=6
Case 8
day1=31
month1=7
Case 9
day1=31
month1=8
Case 10
day1=30
month1=9
Case 11
day1=31
month1=10
Case 12
day1=30
month1=11
Case 3
month1=2
If year1-temp1*4=0 Then '闰年
day1=29
Else '平年
day1=28
End If
End Select
End If
startTime=CDate(cstr(year1) & "-" & cstr(month1) & "-" & cstr(day1) & " 16:00:00")
'计算开始结束时间前一天
If day2<>1 Then
day2=day2-1
End If
If day2=1 Then
Select Case month2
Case 1
day2=31
month2=12
Case 2
day2=31
month2=1
Case 4
day2=31
month2=3
Case 5
day2=30
month2=4
Case 6
day2=31
month2=5
Case 7
day2=30
month2=6
Case 8
day2=31
month2=7
Case 9
day2=31
month2=8
Case 10
day2=30
month2=9
Case 11
day2=31
month2=10
Case 12
day2=30
month2=11
Case 3
month2=2
If year2-temp2*4=0 Then '闰年
day2=29
Else '平年
day2=28
End If
End Select
End If
EndTime=CDate(cstr(year2) & "-" & cstr(month2) & "-" & cstr(day2) & " 16:00:00")
'暂停刷新
pa.Autoscroll=false
Set hPanes=pa.panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
'设置1#趋势笔的开始时间和结束时间
For i=1 To 18
Set hPen=hPens.item(i)
hPen.PutHorizontalAxisTimeSpan startTime,0,EndTime,0
'设置2#趋势笔的开始时间和结束时间
'Set hPen=hPens.item(2)
'hPen.PutHorizontalAxisTimeSpan startTime,0,EndTime,0
Next
End If
End Sub
在趋势查询按钮鼠标事件使用cicode调用前面的脚本
VbCallReturn(VbCallRun(vbcallopen("SearchTrend")))
 
 
10。 跳转到当前时刻的citectVBA脚本如下:
 
Sub JumpToNow() '趋势跳转到当前
Dim pa As Object
Dim hPanes As Object
Dim hPane As Object
Dim hPens As Object
Dim hPen As Object
Dim i As Integer
Set pa = HUANBAO_AN4 '指向趋势控件
Set hPanes=pa.Panes
Set hPane=hPanes.item(1)
Set hPens=hPane.pens
For i=1 To 18
Set hPen=hPens.item(i)
hPen.GotoNow
'Set hPen=hPens.item(2)
'hPen.GotoNow
Next
pa.Autoscroll=true '自动滚动
End Sub
相关按钮的鼠标事件使用cicode调用上面的脚本
VbCallReturn(VbCallRun(vbcallopen("JumpToNow")))
 
11. 还做了一个复制趋势文件的功能,这个是用的是cicode脚本
FUNCTION FileBakup() //复制趋势文件到指定的路径
STRING sPath,sBak
 
//拷贝整个文件夹到目标文件夹
sPath=FileFind("C:\Program Files\Citect\CitectSCADA\Data\*.*", 0)
WHILE StrLength(sPath) > 0 DO
sBak ="E:\HISDATA"
FileCopy(sPath,sBak, 0); ! Find the next file
sPath =FileFind("", 0)
END
sPath=FileFind("C:\Program Files\Citect\CitectSCADA\Data\TRENDX\*.*", 0)
WHILE StrLength(sPath) > 0 DO
sBak ="E:\HISDATA\TRENDX"
FileCopy(sPath,sBak, 0); ! Find the next file
sPath =FileFind("", 0)
END
Message("注意","趋势数据备份到E:\HISDATA",0)
END
至此,功能就做完了。