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

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

时间:2023-05-09 19:56:10浏览次数:49  
标签:控件 Set Dim quantumPLC cb citect Object hPen HUANBAO

这一篇笔记我在新浪博客记录过,在这里也记录一遍,新浪博客地址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 至此,功能就做完了。

 

标签:控件,Set,Dim,quantumPLC,cb,citect,Object,hPen,HUANBAO
From: https://www.cnblogs.com/fishingsriver/p/17386052.html

相关文章

  • citect使用CitectVBA脚本获取本机IP地址
    这是我在新浪写过的一个笔记,在这里也记录一遍。新浪博客地址citect使用CitectVBA脚本获取本机IP地址_来自金沙江的小鱼_新浪博客(sina.com.cn)最近现场计算机上需要获取IP地址来做一些功能,简单得查询了一下网络,还是很好实现的。新建一个citectVBA函数FunctionGetIPAddress()......
  • C# 窗体控件ContextMenuStrip下拉项之间的分割线
    1.效果如图: 2.选中ContextMenuStrip控件,在Items属性中添加Separator 3. (其中第3,4步,通过上下箭头,摆置好你要分割的位置)原文链接......
  • Win32 SDK TreeView 控件的基本用法,节点的编辑,拖动,添加,删除,弹出菜单
    TreeView控件老是用的稀里糊涂的,写个测试程序总结一下基本用法要注意的是控件是发通知给父窗口处理,因此消息中鼠标的坐标不是相对控件的,要从屏幕坐标转换来。程序是WIN32SDK向导生成的C语言框架。树的操作定义成一个类。 微软网站上TreeView_XXX宏的说明文档好多错误,应该是......
  • 自学c#基础第六课,常用控件label
    labellabel和linklabel控件,主要是设置里面可见属性、字体什么的,linklabel的话有点中后下划线样式LinkBehaviorlistbox主要介绍了里面的方法//清除listBox1列表//listBox1.Items.Clear();//添加listBox1元素//listBox1.......
  • 第6-1讲,Listbox 列表框控件
    Listbox列表框控件在与用户交互的过程成中,如果需要用户自己做出选择,可以使用列表框控件.importtkinterastk#创建一个窗口window=tk.Tk()#创建窗口的标题window.title("listbox")#设置窗口的大小window.geometry('500x400')#设置窗体的图标window.iconbitmap('../......
  • 选择好友的下拉控件
    <!doctypehtmlpublic"-//W3C//DTDHTML4.01//EN''http://www.w3.org/TR/html4/strict.dtd"><html><head><metahttp-equiv="content-type"content="text/html;charset=utf-8"/><title>選擇好友......
  • 界面控件Telerik UI for WinForms使用指南 - 数据绑定 & 填充(二)
    TelerikUIforWinForms拥有适用WindowsForms的110多个令人惊叹的UI控件,所有的UIforWinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌面和平板电脑应用程序提供一致美观的下一代用户体验。TelerikUIforWinForms组件为可视化任何类型的数据提供了非常丰富的UI......
  • 界面控件DevExpress Blazor UI v22.2亮点:全新的Window组件
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具,该组件拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场......
  • SQL_DataGridView控件
    1.DataGridView控件——加载数据usingSystem;usingSystem.Data;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceTest03{publicpartialclassForm1:Form{publicForm1(){Initializ......
  • 一个网页的控件很碍眼,怎么能将它关闭掉?
    ctrl+shift+i打开开发者模式,用小箭头选中控件右击“Hiddenelement”,或者Editattribute,添加属性class="display:none"。前者更简单,后者更彻底。......