RSView32命令集最终版
- 格式:doc
- 大小:122.00 KB
- 文档页数:22
RSVIEW32历史数据采集方式研究和实现黄胜;陈诗杰;张兴彤【摘要】文章介绍了组态软件Rsview32的三种数据采集与存储方法,详细描述它们实现过程.【期刊名称】《仪器仪表用户》【年(卷),期】2011(018)002【总页数】4页(P53-56)【关键词】OPC;数据采集;Rsview32;VBA【作者】黄胜;陈诗杰;张兴彤【作者单位】四川启明星铝业公司,眉山620041;四川启明星铝业公司,眉山620041;四川启明星铝业公司,眉山620041【正文语种】中文【中图分类】TP273+.50 引言随着计算机技术的快速发展,在工业自动化控制中大量采用PLC、计算机及上位机监控软件组成的工业监控系统。
由于计算机的计算能力非常强大,大多数监控系统除了完成工艺监控任务外,还需要对设备采集的数据进行存盘、统计分析,并根据实际情况打印出数据报表。
所谓数据报表就是根据实际需要,以一定的格式将统计分析后的数据记录显示和打印出来,如:实时数据报表、历史数据报表(班报表、日报表、月报表)、报警记录报表等。
数据报表在工控系统中是必不可少的一部分,是对生产过程中系统监控对象状态的综合记录和规律总结。
然而对数据进行分析的关键是如何在组态软件中进行历史数据采集与存储。
RSView32是RockWell SoftWare公司开发的组态软件,它提供集成的、组件化的人机接口,广泛地应用于监视和控制自动化设备和过程。
它除了可以方便地与ALLEN-BRADLEY PLC进行无缝的结合,也可以通过使用OPC或DDE的通讯方式与其它公司的设备进行连接。
作为组态软件,RSView32提供了强大的数据监控能力,方便用户进行上位机的画面组态,同时也提供了多种方式来进行历史数据采集与存储,主要包括:1)设置数据记录;2)利用RSVIEW32内嵌有VBA简单的编程;3)RSView32组态软件为OPC服务器(OPC Server),以Visual Basic 6.0为OPC客户端(OPC Client)的编程工具来构建一个网络化的OPC服务,实现从RSView32组态软件获取数据并存储的功能。
组态RSView32数据记录RSView32有着强大的数据记录(Data Log)功能,用于实现数据的存储。
所谓数据记录就是一个在特定条件下保存指定的标签(或数据)的过程。
在“数据记录设置(Data Log Setup)”编辑器里,可以创建不同设置的数据记录模式。
标签(或数据)可以存储为.DBF (dBase IV)格式或ODBC 格式。
注意事项:●一个项目最多可以同时运行20 个数据记录模式,记录10,000个标签。
●.DBF (dBase IV)格式中,一个的窄数据记录模式最多可以记录10,000 个标签,一个宽数据记录模式最多可以记录100 个标签。
●RSView32根据创建文件的日期和所包含的数据类型自动命名文件。
在有其他信息记录时,每种记录类型每天最多可以创建26个记录文件,在仅记录数据时,采用长文件名,每天最多可以创建9999个记录文件。
数据记录的主要用途如下:●在一个趋势图里显示历史数据●通过任何支持ODBC 标准或DBF文件格式的第三方软件分析或显示数据,如Microsoft Excel 和RSTrend●数据存档以备以后分析计算设置一个数据记录模式需要指定存储格式、记录路径、触发条件、创建删除记录文件的模式以及该模式所要监视的标签值。
设置数据记录模式1 启动“项目管理器(Project Manager)”里的“数据记录设置(Data LogSetup)”编辑器。
2 在设置(Setup)、路径(Paths)、文件管理(File Management)、记录触发(Log Triggers)和模式中的标记(Tags in Model)选项卡里分别定义模式的各个属性。
3设置完后,单击“OK”保存该模式,在“另存为”对话框里键入模式名后,点击“保存”完成一个数据记录模式的设置。
“数据记录设置”编辑器主界面如图1所示:图1 数据记录设置编辑器窗口1、数据记录设置为了进行数据记录,我们按照所记录数据的类型、特点以及其它性质进行归类,把相同的一类数据记录标签集中在某一个数据记录模式中。
regsvr32命令点开始》运行输入cmd 回车在命令提示符下输入for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1regsvr32命令这里有很多Regsvr32命令,看了后就明白了Regsvr32命令修复系统故障实例使用过activex的人都知道,activex不注册是不能够被系统识别和使用的,一般安装程序都会自动地把它所使用的activex控件注册,但如果你拿到的一个控件需要手动注册怎么办呢?如果修改注册表那就太麻烦了,在windows的system文件夹下有一个regsvr32.exe的程序,它就是windows自带的activex注册和反注册工具。
2000系统的regsvr32.exe在winnt\system32文件夹下;WInXP系统的regsvr32.exe在windows\system32文件夹下regsvr32的用法为:"regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。
其中dllname为activex控件文件名,建议在安装前拷贝到system 文件夹下。
参数有如下意义:/u——反注册控件/s——不管注册成功与否,均不显示提示框/c——控制台输出/i——跳过控件的选项进行安装(与注册不同)/n——不注册控件,此选项必须与/i选项一起使用执行该命令的方法:1、可以在“开始”--“运行”,调出运行的对话框,也可以使用Win+R热键,然后直接在输入栏输入即可2、在开始--运行输入cmd,调出…命令提示符‟窗口,然后再执行regsvr32命令。
二、Regsvr32错误消息的说明当使用Regsvr32.exe 时,它会尝试加载该组件并调用它的DLLSelfRegister 函数。
如果此尝试成功,Regsvr32.exe 会显示一个指示成功的对话框。
如果此尝试失败,Regsvr32.exe 会返回一条错误消息,其中可能会包括一个Win32 错误代码。
问题:
1.标记监视器的作用及创建?
2.“标记”对话框的作用及使用
“停止项目”-系统-项目-Progectstop
所有标记值不管它们的源是什么都存储在数值表格里。
RSView32 的各个部分包括图形显示、标记监视文件、警报等都从这个表格读取数值。
警报汇兑里的按钮的设置在“格式”-“按钮”里
创建一个“警报汇总”文件
1 启动“项目管理器”里的“警报汇总”。
2 使用“插入”菜单,选择插入需要显示在“警报汇总”里的信息。
3 使用“格式”菜单中的选项设置“警报汇总”的外观并设置所需的按钮。
4 使用“数据”菜单指定哪些标记和警报信息要放到汇总里,排序的方法,以及设定与“执行”按钮相关的命令。
5 从“文件”菜单里选择“保存”,保存警报汇总。
6 键入一个文件名。
它将出现在“项目管理器”的右窗口。
RSView32命令集最终版acknowledge确认[标签名称]确认一个或一组报警。
此命令不能对已经执行的,但对执行过程中如有错误产生,可以显示出一条信息。
如果存在与报警相关的确认位,则确认报警会将确认位置设置为位[tag_name]被确认的标签名称.可以是一个标签的名称或含有通配符的标签名称或[tag]文字字符串.如果未设置标签,此命令将确认最严重级别的最近未确认报警[tag]确认与活动图形显示中突出显示的对象相关的标签报警注意:如果报警发生的速度很快,不要使用没有标签名称的acknowledge命令,acknowledge命令将可能对新报警进行确认而不是对用户打算确认的报警.示例:acknowledge命令acknowledgehopper1\\flow确认所有对标签hopper1\\flow的报警.acknowledgehopper1\\*确认文件夹hopper1中所有标签的报警确认*确认所有报警确认[tag]确认在激活图形显示中高亮对象有关联的标签报警致谢acknowledgeall确认全部报警。
此命令比acknowledge*命令运行速度快。
此命令不能对已经执行的,但对执行过程中有错误的可以显示出一条此命令中对信息。
如果报警有确认位,确认报警为,确认报警会将确认位置位。
此命令中对标签数量没有限制。
活动activity打开活动日志设置编辑器activitybaronActivitybaron显示活动栏用户第一奖活动条拖离原位,移动到屏幕的任何位置移动时先点中clear和clearall 之间的位置,然后拖动鼠标。
点击标题条并拖动该条直到碰触到rsview32的状态条,就可以使活动条复位。
拖动活动条的一个角或一侧以调整其大小。
activitybaroffActivitybaroff隐藏活动栏activityoffActivityoff停止活动日志记录activityon活动启动活动日志activityviewer活动查看器打开活动记录查看器(activitylogviewer)惊恐alarm打开报警设置编辑器alarmlogoff报警注销停止报警记录alarmlogonAlarmlogon启动报警记录alarmoff报警关闭停止报警监控此命令不能显示已经执行的,但对执行中有错误的可以显示出一条信息。
RSView32 的资料很少,关于VBA的资料就少之又少,找到一点VBA的程序代码,给那些刚接触的朋友们参考下!Option ExplicitPrivate oTag As TagPrivate WithEvents m_oActivity As ActivityDim oconn As ADODB.ConnectionDim ors As ADODB.RecordsetDim oExcel As ObjectDim oBook As ObjectDim oSheet As ObjectDim sselect As StringDim sselect1 As StringPrivate WithEvents timer2 As ccrpTimerDim wait1, quit1 As StringSub weekth()On Error GoTo Error1Set timer2 = New ccrpTimertimer2.EventType = TimerPeriodictimer2.Interval = 1000timer2.Stats.Frequency = 65timer2.Enabled = TrueExit SubError1:MsgBox Err.Description, vbOKOnly + vbQuestionEnd SubPrivate Sub Timer2_Timer(ByVal Milliseconds As Long)On Error GoTo Error1Dim reportday As DateDim week_of_year, day_of_week1 As IntegerDim a1 As TagIf gTagDb.GetTag("report_date").Value = 0 Then gTagDb.GetTag("report_date").Value = 1If gTagDb.GetTag("report_month").Value = 0 Then gTagDb.GetTag("report_month").Value = 1If gTagDb.GetTag("report_month").Value = 1 Or gTagDb.GetTag("report_month").Value = 3 OrgTagDb.GetTag("report_month").Value = 5 Or gTagDb.GetTag("report_month").Value = 7 Or gTagDb.GetTag("report_month").Value = 8 Or gTagDb.GetTag("report_month").Value = 10 Or gTagDb.GetTag("report_month").Value = 12 ThenIf gTagDb.GetTag("report_date").Value >= 32 ThengTagDb.GetTag("report_date").Value = 31End IfEnd IfIf gTagDb.GetTag("report_month").Value = 4 Or gTagDb.GetTag("report_month").Value = 6 Or gTagDb.GetTag("report_month").Value = 9 Or gTagDb.GetTag("report_month").Value = 11 Then If gTagDb.GetTag("report_date").Value >= 31 ThengTagDb.GetTag("report_date").Value = 30End IfEnd IfIf gTagDb.GetTag("report_month").Value = 2 And (gTagDb.GetTag("report_year").Value Mod 4 = 0) ThenIf gTagDb.GetTag("report_date").Value >= 30 ThengTagDb.GetTag("report_date").Value = 29End IfEnd IfIf gTagDb.GetTag("report_month").Value = 2 And (gTagDb.GetTag("report_year").Value Mod 4 <> 0) ThenIf gTagDb.GetTag("report_date").Value >= 29 ThengTagDb.GetTag("report_date").Value = 28End IfEnd Ifweek_of_year = DatePart("ww", DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value))) gTagDb.GetTag("report_week").Value = week_of_yearday_of_week1 = DatePart("w", DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value))) gTagDb.GetTag("report_dayofweek").Value = day_of_week1Exit SubError1:MsgBox Err.Description, vbOKOnly + vbQuestionEnd SubSub GetProjectPath()'This sub gets the current projects actual pathOn Error GoTo Error_HandlerDim Tpath As TagSet Tpath = gTagDb.GetTag("TemplatePath")Tpath = """" & gProject.PathExit SubError_Handler:'Log Error to the Activity LoggActivity.Log "Activity_EventsStop() failed: " & Err.Description & " (ErrNo= " & _Err.number & ")", roActivityError, , , "Activity_EventsStop()"End SubSub plc1_system_clock()On Error GoTo ErrHandlerDim system_year, system_month, system_date, system_hour, system_min, system_second As TagDim set_year, set_month, set_date, set_hour, set_min, set_second As TagSet system_year = gTagDb("System\year")Set system_month = gTagDb("System\month")Set system_date = gTagDb("System\dayofmonth")Set system_hour = gTagDb("System\hour")Set system_min = gTagDb("System\minute")Set system_second = gTagDb("System\second")Set set_year = gTagDb("plc1\datetime_set\0")Set set_month = gTagDb("plc1\datetime_set\1")Set set_date = gTagDb("plc1\datetime_set\2")Set set_hour = gTagDb("plc1\datetime_set\3")Set set_min = gTagDb("plc1\datetime_set\4")Set set_second = gTagDb("plc1\datetime_set\5")set_year.Value = system_year.Valueset_month.Value = system_month.Valueset_date.Value = system_date.Valueset_hour.Value = system_hour.Valueset_min.Value = system_min.Valueset_second.Value = system_second.Value'Release resourcesSet system_month = NothingSet system_date = NothingSet system_hour = NothingSet system_min = NothingSet system_second = NothingSet set_year = NothingSet set_month = NothingSet set_date = NothingSet set_hour = NothingSet set_min = NothingSet set_second = NothingExit SubErrHandler:Select Case Err.numberCase roErrorTagValueCommError, roErrorTagEventgActivity.Log Err.Description, roActivityError, roActivityTagRead'Release resourcesSet system_year = NothingSet system_month = NothingSet system_date = NothingSet system_hour = NothingSet system_min = NothingSet system_second = NothingSet set_year = NothingSet set_month = NothingSet set_date = NothingSet set_hour = NothingSet set_min = NothingSet set_second = NothingExit SubCase roErrorTagValueUninitialized'Release resourcesSet system_year = NothingSet system_month = NothingSet system_date = NothingSet system_hour = NothingSet system_second = NothingSet set_year = NothingSet set_month = NothingSet set_date = NothingSet set_hour = NothingSet set_min = NothingSet set_second = NothingExit SubCase roErrorTagValueStaleResume NextCase ElsegActivity.Log Err.DescriptionResume NextEnd SelectEnd SubSub plc2_system_clock()On Error GoTo ErrHandlerDim system_year, system_month, system_date, system_hour, system_min, system_second As TagDim set_year, set_month, set_date, set_hour, set_min, set_second As TagSet system_year = gTagDb("System\year")Set system_month = gTagDb("System\month")Set system_date = gTagDb("System\dayofmonth")Set system_hour = gTagDb("System\hour")Set system_min = gTagDb("System\minute")Set system_second = gTagDb("System\second")Set set_year = gTagDb("plc2\datetime_set\0")Set set_month = gTagDb("plc2\datetime_set\1")Set set_date = gTagDb("plc2\datetime_set\2")Set set_hour = gTagDb("plc2\datetime_set\3")Set set_min = gTagDb("plc2\datetime_set\4")Set set_second = gTagDb("plc2\datetime_set\5")set_year.Value = system_year.Valueset_month.Value = system_month.Valueset_date.Value = system_date.Valueset_hour.Value = system_hour.Valueset_min.Value = system_min.Valueset_second.Value = system_second.Value'Release resourcesSet system_year = NothingSet system_month = NothingSet system_date = NothingSet system_hour = NothingSet system_min = NothingSet system_second = NothingSet set_year = NothingSet set_month = NothingSet set_date = NothingSet set_hour = NothingSet set_min = NothingSet set_second = NothingExit SubErrHandler:Select Case Err.numberCase roErrorTagValueCommError, roErrorTagEventgActivity.Log Err.Description, roActivityError, roActivityTagRead'Release resourcesSet system_year = NothingSet system_month = NothingSet system_date = NothingSet system_hour = NothingSet system_min = NothingSet system_second = NothingSet set_year = NothingSet set_month = NothingSet set_date = NothingSet set_hour = NothingSet set_min = NothingSet set_second = NothingExit SubCase roErrorTagValueUninitialized'Release resourcesSet system_year = NothingSet system_month = NothingSet system_date = NothingSet system_hour = NothingSet system_min = NothingSet system_second = NothingSet set_year = NothingSet set_month = NothingSet set_date = NothingSet set_hour = NothingSet set_min = NothingSet set_second = NothingExit SubCase roErrorTagValueStaleResume NextCase ElsegActivity.Log Err.DescriptionResume NextEnd SelectEnd SubSub Download_Validation(Source As String, Destination As String)Dim SourceTag As TagDim DestinationTag As TagDim CmdString As StringOn Error GoTo Err_Handle1 '如果有错误就转到Err_Handle1子程序中Set SourceTag = gTagDb.GetTag(Source)Set DestinationTag = gTagDb.GetTag(Destination)If SourceTag.Value <= DestinationTag.MaximumValue And SourceTag.Value >= DestinationTag.MinimumValue ThenDestinationTag.Value = SourceTag.ValueDestinationTag.WriteConfigurationElseCmdString = "Display ValidateFailed /T" & DestinationgCommand.Execute (CmdString)End IfExit SubErr_Handle1:'Log error to the Activity LoggActivity.Log "Download_Validation() failed: " & Err.Description & " (ErrNo= " & _ Err.number & ")", roActivityError, , , "Download_Validation()" End SubSub Activity_EventsStart()'This sub is run to start Activity event processing.On Error GoTo Error_Handler'Create the Activity and Tag objectsSet m_oActivity = gActivitySet oTag = gTagDb.GetTag("ActivityBarMessage")Exit SubError_Handler:'Log Error to the Activity LoggActivity.Log "Activity_EventsStart() failed: " & Err.Description & " (ErrNo= " & _ Err.number & ")", roActivityError, , , "Activity_EventsStart()"End SubSub Activity_EventsStop()'End Sub'This sub is run to stop Activity events and close the text fileOn Error GoTo Error_Handler'Destroy the Activity and Tag objectsSet m_oActivity = NothingSet oTag = NothingExit SubError_Handler:'Log Error to the Activity LoggActivity.Log "Activity_EventsStop() failed: " & Err.Description & " (ErrNo= " & _ Err.number & ")", roActivityError, , , "Activity_EventsStop()"End SubPrivate Sub m_oActivity_LoggedToActivityBar(ByVal Message As String, ByVal ActivityType As Long)'This sub is run every time a message is sent to the Activity Bar'NOTE: Because logging an error to the Activity Log will fire this event again,' errors are ignored.On Error Resume NextDim MyPos As Integer'Set the maximum message length to 82 characters, length of a string tagMessage = Left(Message, 82)'Set the string tag = to the message logged to Activity BaroTag.Value = Message'Does activity bar message contain "does not have security" ? Any non-zero number means it does 'Start at position 1 and preform a non case sensitive text comparisonMyPos = InStr(1, Message, "访问这个命令的权限")'If the error message contains the above string then display popupIf (ActivityType = 1) And (MyPos <> 0) ThengCommand.Execute ("display Security_Warning")End IfMyPos = InStr(1, Message, "图形:登录用户没有访问这个图形的权限")'If the error message contains the above string then display popupIf (ActivityType = 0) And (MyPos <> 0) ThengCommand.Execute ("display Security_Warning")End IfMyPos = InStr(1, Message, "没有权利")'If the error message contains the above string then display popupIf (ActivityType = 0) And (MyPos <> 0) ThengCommand.Execute ("display Security_Warning")End IfEnd SubSub water_quality_daily_report()On Error GoTo Error1Dim datefrom, dateto As VariantDim rc, rc_daily, rc1 As IntegerDim max1 As VariantDim max(80, 80), datetime(80, 80) As VariantDim max_1(80, 80), min_1(80, 80), avg_1(80, 80), sum_1(80, 80), tagindex1(80, 80) As Double Dim j, para As LongDim date_print As Integerwait1 = "Display wait"quit1 = "abort wait"gCommand.Execute (wait1)date_print = gTagDb.GetTag("w_date_print").ValueIf date_print = 1 Thendatefrom = DateV alue(Now() - 1)Elsedatefrom = DateV alue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value))End Ifdateto = DateV alue(datefrom + 1)Set oconn = New ADODB.ConnectionSet ors = New ADODB.Recordsetoconn.CursorLocation = adUseClientFor para = 0 To 40sselect1 = "Select dateandtime,Val,TagIndex from FloatTable where DateAndTime>=#" & datefrom & "# and DateAndTime<#" & dateto & "# and TagIndex= " & para & " and marker=chr(83)"oconn.Open "DSN=report"ors.Open sselect1, oconn, adOpenStatic, adLockBatchOptimisticrc = ors.recordcountIf rc < 1 ThenIf date_print = 0 ThenMsgBox (datefrom & "to " & dateto & "没有数据")End Ifors.Closeoconn.CloseSet ors = NothingSet oconn = NothinggCommand.Execute (quit1)Exit SubEnd Ifmax1 = ors.GetRowsFor j = 0 To rc - 1max(para, j) = val(max1(1, j))datetime(para, j) = max1(0, j)Next jmax_1(para, 0) = max(para, 0)min_1(para, 0) = max(para, 0)sum_1(para, 0) = max(para, 0)For j = 1 To rc - 1sum_1(para, 0) = sum_1(para, 0) + max(para, j)If max(para, j) >= max_1(para, 0) Then max_1(para, 0) = max(para, j)If max(para, j) <= min_1(para, 0) Then min_1(para, 0) = max(para, j)Next javg_1(para, 0) = sum_1(para, 0) / rcors.Closeoconn.CloseNext paraSet ors = NothingSet oconn = Nothing'EXCELSet oExcel = New Excel.ApplicationSet oBook = oExcel.Workbooks.Open("d:\xinjiang_HMI\report\" + "XXXXXXX日报表.xls")Set oSheet = oBook.Worksheets("XXXXXXX日报表")With oSheet.Range("B6:o29").NumberFormatLocal = "0.00_ ".Range("B37:o60").NumberFormatLocal = "0.00_ ".Range("B68:o91").NumberFormatLocal = "0.00_ ".Range("B6:o29").HorizontalAlignment = xlCenter.Range("B37:o60").HorizontalAlignment = xlCenter.Range("B68:o91").HorizontalAlignment = xlCenter.Range("B6:o29").Font.Size = 10.Range("B37:o60").Font.Size = 10.Range("B68:o91").Font.Size = 10For para = 0 To 12For j = 0 To rc - 1.Cells(6 + j, 2 + para).Value = max(para, j).Cells(6 + j, 1).Value = datetime(0, j)Next j' .Cells(31, 2 + para).Value = avg_1(para, 0)Next paraFor para = 13 To 26For j = 0 To rc - 1.Cells(37 + j, 2 + para - 13).Value = max(para, j).Cells(37 + j, 1).Value = datetime(0, j)Next j' .Cells(31, 2 + para-13).Value = avg_1(para, 0)Next paraFor para = 27 To 40For j = 0 To rc - 1.Cells(68 + j, 2 + para - 27).Value = max(para, j).Cells(68 + j, 1).Value = datetime(0, j)Next j' .Cells(31, 2 + para-27).Value = avg_1(para, 0)Next para.Range("A6:A29").NumberFormatLocal = "h:mm;@".Range("A37:A60").NumberFormatLocal = "h:mm;@".Range("A68:A91").NumberFormatLocal = "h:mm;@"If date_print = 1 Then.Range("A3").FormulaR1C1 = "日期:" & gTagDb.GetTag("system\year").Value & "年" & gTagDb.GetTag("system\month").Value & "月" & gTagDb.GetTag("system\dayofmonth").Value - 1 & "日".Range("A34").FormulaR1C1 = "日期:" & gTagDb.GetTag("system\year").Value & "年" & gTagDb.GetTag("system\month").Value & "月" & gTagDb.GetTag("system\dayofmonth").Value - 1 & "日".Range("A65").FormulaR1C1 = "日期:" & gTagDb.GetTag("system\year").Value & "年" & gTagDb.GetTag("system\month").Value & "月"& gTagDb.GetTag("system\dayofmonth").Value - 1 & "日"Else.Range("A3").FormulaR1C1 = "日期:" & gTagDb.GetTag("report_year").Value & "年" & gTagDb.GetTag("report_month").Value & "月" & gTagDb.GetTag("report_date").Value & "日".Range("A34").FormulaR1C1 = "日期:" & gTagDb.GetTag("report_year").Value & "年" & gTagDb.GetTag("report_month").Value & "月" & gTagDb.GetTag("report_date").Value & "日".Range("A65").FormulaR1C1 = "日期:" & gTagDb.GetTag("report_year").Value & "年" & gTagDb.GetTag("report_month").Value & "月" & gTagDb.GetTag("report_date").Value & "日"End If.Range("a6:o29").Sort , key1:=.Range("a6").Range("a37:o60").Sort , key1:=.Range("a37").Range("a68:o91").Sort , key1:=.Range("a68")', header:=xlNoEnd WithIf date_print = 1 ThenoBook.PrintOutoExcel.Application.DisplayAlerts = FalseoExcel.QuitoExcel.Application.DisplayAlerts = TrueEnd IfgCommand.Execute (quit1)If date_print = 0 ThenWith oBook.Application.Visible = True.Windows("XXXXXXX日报表.xls").Visible = TrueEnd WithEnd IfSet oSheet = NothingSet oBook = NothingSet oExcel = NothingExit SubError1:'MsgBox Err.Description, vbOKOnly + vbQuestiongCommand.Execute (quit1)End SubSub water_quality_monthly_report()On Error GoTo Error1Dim month1, year1, date1, monthcount, para As IntegerDim datecount, maxdate As IntegerDim datefrom, dateto As VariantDim month_print As Integerwait1 = "Display wait"quit1 = "abort wait"gCommand.Execute (wait1)month_print = gTagDb.GetTag("w_month_print").ValueIf month_print = 1 Thenmonth1 = gTagDb.GetTag("system\month").Value - 1Elseyear1 = gTagDb.GetTag("report_year").Valuemonth1 = gTagDb.GetTag("report_month").Valuedate1 = gTagDb.GetTag("report_date").ValueEnd If'1\3\5\7\8\10\12 month 31 dateIf month1 = 1 Or month1 = 3 Or month1 = 5 Or month1 = 7 Or month1 = 8 Or month1 = 10 Or month1 = 12 Thenmaxdate = 31End If'4\6\9\11 month 30 dateIf month1 = 4 Or month1 = 6 Or month1 = 9 Or month1 = 11 Thenmaxdate = 30End If'2 month 29 dateIf month1 = 2 And (year1 Mod 4 = 0) Thenmaxdate = 29End If'2 month 28 dateIf month1 = 2 And (year1 Mod 4 <> 0) Thenmaxdate = 28End IfDim rc, rc_daily, rc1 As IntegerDim max1 As VariantDim max(80, 80), datetime(80, 80) As VariantDim max_1(80, 80), min_1(80, 80), avg_1(80, 80), sum_1(80, 80) As DoubleDim avg_2(80, 80), sum_2(80, 80) As DoubleDim j, k As Longk = 0For datecount = 1 To maxdateIf month_print = 1 Thendatefrom = DateV alue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value - 1) & "-" & datecount)Elsedatefrom = DateV alue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & datecount)End Ifdateto = DateV alue(datefrom + 1)Set oconn = New ADODB.ConnectionSet ors = New ADODB.Recordsetoconn.CursorLocation = adUseClientFor para = 0 To 40sselect1 = "Select dateandtime,Val,TagIndex from FloatTable where DateAndTime>=#" & datefrom & "# and DateAndTime<#" & dateto & "# and TagIndex= " & para & "and marker=chr(83)"oconn.Open "DSN=report"ors.Open sselect1, oconn, adOpenStatic, adLockBatchOptimisticrc = ors.recordcountIf rc < 1 ThenIf month_print = 0 ThenMsgBox (datefrom & " to " & dateto & "没有数据!")End Ifors.Closeoconn.CloseSet ors = NothingSet oconn = NothingGoTo next1End Ifmax1 = ors.GetRowsFor j = 0 To rc - 1max(para, j) = val(max1(1, j))datetime(para, j) = max1(0, j)Next jmax_1(para, datecount) = max(para, 0)min_1(para, datecount) = max(para, 0)sum_1(para, datecount) = max(para, 0)For j = 1 To rc - 1sum_1(para, datecount) = sum_1(para, datecount) + max(para, j)If max(para, j) >= max_1(para, datecount) Then max_1(para, datecount) = max(para, j)If max(para, j) <= min_1(para, datecount) Then min_1(para, datecount) = max(para, j)Next javg_1(para, datecount) = sum_1(para, datecount) / rcors.Closeoconn.Closesum_2(para, 0) = sum_2(para, 0) + avg_1(para, datecount)Next paraSet ors = NothingSet oconn = Nothingk = k + 1next1:Next datecountIf k = 0 Then GoTo next2'EXCELSet oExcel = New Excel.ApplicationSet oBook = oExcel.Workbooks.Open("d:\xinjiang_HMI\report\" + "XXXXXXX月报表.xls")Set oSheet = oBook.Worksheets("XXXXXXX月报表")With oSheet.Range("B6:o36").NumberFormatLocal = "0.00_ ".Range("B44:o74").NumberFormatLocal = "0.00_ ".Range("B84:o115").NumberFormatLocal = "0.00_ ".Range("B6:o36").HorizontalAlignment = xlCenter.Range("B44:o74").HorizontalAlignment = xlCenter.Range("B84:o115").HorizontalAlignment = xlCenter.Range("B6:o36").Font.Size = 10.Range("B44:o74").Font.Size = 10.Range("B84:o115").Font.Size = 10For datecount = 1 To maxdateFor para = 0 To 12.Cells(5 + datecount, 1).Value = datecount.Cells(5 + datecount, 2 + para).Value = avg_1(para, datecount)'.Range("A6:A36").NumberFormatLocal = "0_ "Next paraFor para = 13 To 26.Cells(43 + datecount, 1).Value = datecount.Cells(43 + datecount, 2 + para - 13).Value = avg_1(para, datecount)'.Range("A6:A36").NumberFormatLocal = "0_ "Next paraFor para = 27 To 40.Cells(83 + datecount, 1).Value = datecount.Cells(83 + datecount, 2 + para - 27).Value = avg_1(para, datecount)'.Range("A6:A36").NumberFormatLocal = "0_ "Next paraNext datecountIf month_print = 1 Then.Range("A3").FormulaR1C1 = "日期:" & gTagDb.GetTag("system\year").Value & "年" & gTagDb.GetTag("system\month").Value - 1 & "月".Range("A41").FormulaR1C1 = "日期:" & gTagDb.GetTag("system\year").Value & "年" & gTagDb.GetTag("system\month").Value - 1 & "月".Range("A81").FormulaR1C1 = "日期:" & gTagDb.GetTag("system\year").Value & "年" & gTagDb.GetTag("system\month").Value - 1 & "月"Else.Range("A3").FormulaR1C1 = "日期:" & gTagDb.GetTag("report_year").Value & "年" & gTagDb.GetTag("report_month").Value & "月".Range("A41").FormulaR1C1 = "日期:" & gTagDb.GetTag("report_year").Value & "年" & gTagDb.GetTag("report_month").Value & "月".Range("A81").FormulaR1C1 = "日期:" & gTagDb.GetTag("report_year").Value & "年" & gTagDb.GetTag("report_month").Value & "月"End IfEnd With'dim para1 As Integer'For para1 = 0 To 12'avg_2(para1, 0) = sum_2(para1, 0) / k'' With oSheet' .Cells(37, 2 + para1).V alue = avg_2(para1, 0)' End With'Next para1'For para1 = 13 To 26'avg_2(para1, 0) = sum_2(para1, 0) / k' With oSheet'.Cells(75, 2 + para1 - 13).V alue = avg_2(para1, 0) ' End With'Next para1'For para1 = 27 To 40'avg_2(para1, 0) = sum_2(para1, 0) / k' With oSheet'.Cells(115, 2 + para1 - 27).Value = avg_2(para1, 0) ' End With'Next para1next2:If k = 0 ThenIf month_print = 0 ThenMsgBox "这个月没有数据"End IfgCommand.Execute (quit1)Exit SubElseIf month_print = 1 ThenoBook.PrintOutoExcel.Application.DisplayAlerts = False oExcel.QuitoExcel.Application.DisplayAlerts = TrueEnd IfgCommand.Execute (quit1)If month_print = 0 ThenWith oBook.Application.Visible = True.Windows("XXXXXXX月报表").Visible = True End WithEnd IfEnd IfSet oSheet = NothingSet oBook = NothingSet oExcel = NothingExit SubError1:'MsgBox Err.Description, vbOKOnly + vbQuestiongCommand.Execute (quit1)End SubSub water_quality_weekly_report()On Error GoTo Error1Dim month1, year1, date1, week1, monthcount, para, datecount1, maxdate As IntegerDim datefrom, dateto, datefrom1 As Variantwait1 = "Display wait"quit1 = "abort wait"gCommand.Execute (wait1)year1 = gTagDb.GetTag("report_year").Valuemonth1 = gTagDb.GetTag("report_month").Valuedate1 = gTagDb.GetTag("report_date").Valueweek1 = gTagDb.GetTag("report_week").ValueDim rc, rc_daily, rc1 As IntegerDim max1 As VariantDim max(80, 80), datetime(80, 80) As VariantDim max_1(80, 80), min_1(80, 80), avg_1(80, 80), sum_1(80, 80) As DoubleDim avg_2(80, 80), sum_2(80, 80) As DoubleDim j, k As LongDim day_of_week As IntegerDim week_print As Integerweek_print = gTagDb.GetTag("w_week_print").ValueIf week_print = 1 Thenday_of_week = DatePart("w", DateValue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value) - 7))Elseday_of_week = DatePart("w", DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value)))End IfIf week_print = 1 ThenIf day_of_week = 1 Then datefrom = DateV alue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value)- 7)If day_of_week = 2 Then datefrom = DateValue(DateValue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value) - 7) - 1)If day_of_week = 3 Then datefrom = DateValue(DateValue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value) - 7) - 2)If day_of_week = 4 Then datefrom = DateValue(DateValue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value) - 7) - 3)If day_of_week = 5 Then datefrom = DateValue(DateValue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value) - 7) - 4)If day_of_week = 6 Then datefrom = DateValue(DateValue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value) - 7) - 5)If day_of_week = 7 Then datefrom = DateValue(DateValue((gTagDb.GetTag("system\year").Value) & "-" & (gTagDb.GetTag("system\month").Value) & "-" & (gTagDb.GetTag("system\dayofmonth").Value) - 7) - 6)ElseIf day_of_week = 1 Then datefrom = DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value))If day_of_week = 2 Then datefrom = DateValue(DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value)) - 1)If day_of_week = 3 Then datefrom = DateValue(DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value)) - 2)If day_of_week = 4 Then datefrom = DateValue(DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value)) - 3)If day_of_week = 5 Then datefrom = DateValue(DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value)) - 4)If day_of_week = 6 Then datefrom = DateValue(DateValue((gTagDb.GetTag("report_year").Value) & "-" & (gTagDb.GetTag("report_month").Value) & "-" & (gTagDb.GetTag("report_date").Value)) - 5)If day_of_week = 7 Then datefrom = DateValue(DateValue((gTagDb.GetTag("report_year").Value)。
目录引言部分:RSview32简介与安装第一部分:RSview32开发环境与工具栏简介。
第二部分:Rsview32使用详解与实例。
2.1 创建一个标签数据库2.2通讯组态2.3创建标签监视2.4创建衍生tag2.5创建符号命令和宏命令2.6组态报警2.7组态事件检测2.8组态键定义控制2.9组态趋势曲线2.10创建ActiveX对象2.11组态安全系统2.13创建主菜单和运行项目2.14组态数据记录2.15使用RSview32对象模型和VBA第三部分:Rsview32 for PLC-5实验实验一:认识RSview32实验二:交通灯实验三:水箱模拟系统第四部分:Rsview32命令集。
前言基于RSView32监控组态软件系统简介RSView32是基于组件集成并用于监视和控制自动化设备和过程的人机界面监控软件。
RSView32通过开放的技术扩展了用户的监控视野,达到了与其它罗克韦尔软件产品、微软产品以及第三方应用程序的高度兼容。
一、RSView32监控组态软件系统的功能:1.1 图形与动画设计功能RSView32提供的绘图工具可生成简单或复杂的图形对象或文本,以及包含许多常用的图形对象的库,这些图形对象可以拖放到画面中。
另外,还可以使用其它绘图软件包含AutoCAD 和CorelDraw生成的对象。
使用RSView32动画控制,可以激活图形对象以使它们反映出过程的变化。
1.2 监视与报警功能可以将开关量或模拟量标记设置为允许报警,并使用报警汇总窗口显示报警信息。
可以自定义报警汇总窗口,如使用不同颜色表明报警严重性等级,以便操作者发现报警;也可以按时间顺序或严重性等级查看、过滤报警信息,这样就可以看到那些特定的报警信息。
1.3 日志记录功能在运行时记录系统信息。
动作日志记录了系统动作,如命令或宏的运行、系统信息、错误以及通信错误。
报警日志记录报警信息,就是在报警监视重,当某标记进入报警状态、脱离报警状态、报警被确认以及报警被强置时记录信息。
RSView32 学习教程一. 概述欢迎使罗克韦尔软件公司(Rockwell Software)的工业控制人机界面软件RSView32。
RSView32是一种易学、实用、可集成和基于组件的人机界面系统,它可以方便地对工业自动化系统进行监控和人机交互。
RSView32不仅包括了许多著名人机界面软件所必备的功能,而且还包括了许多采用了最新网络技术和开发的独特功能,是实现工业自动化全厂数字神经系统的理想工具。
图1是灌瓶生产线中使用RSView32进行监控的界面实例。
图1灌瓶生产线监控界面在本次实验中,安装和使用RSView32环境要求为:1)Intel Pentium处理器233MHz以上的个人计算机;2)建议内存为128M以上;3)建议使用WinNT、Win2000(RSView32 6.3)以上或Win98;4)为了与控制程序相配合,要安装RSLogix 500、RSLogix Emulate 500程序。
二. 本教程主要学习内容RSView32具有强大的图形与动画、控制操作、使用各类ActiveX控件、报警监视、事件检测、安全系统等功能。
本教程中通过简单但有典型性的实例我们将学到:1)建立项目;2)组态通讯驱动和设备节点;3)建立数据库标记;4)规划项目显示图形、动画和各种控件(包括报警总览、趋势图、梯形图等),并使之与实际设备或变量联系;5)建立子画面;6)使用和体会RSView32的ActiveX控件技术和插件技术。
如:RSLadder,TrendX,等;7)使用消息软件Messenger(采用声卡和Email形式)。
在本实验开始前,请迅速阅读RSView32快速入门(可从下载),以掌握基本术语和菜单风格;此外,对RA的PLC 梯形图语法和编程工具(RSLogix500)等也要简单掌握。
三. 实验一(交通控制红绿灯)z实验内容:设计一个交通控制红绿灯系统,要求控制灯能定时按“红灯-绿灯-黄灯闪-红灯”变换,汽车对交通灯信号进行响应。
RSview32桌面锁设置
1.启动桌面锁程序
2.设置(1)登录选项卡:不用设置
(2)桌面选项卡:选择“用桌面锁定来替换现有桌面”
程序:1应用1
名字:应用1
程序:(浏览)找到rsview32的启动程序‘C:\.....\RSVIEW32.exe’
命令行参数:(浏览)找到编辑好的文件‘D:\....\X.rsv’
并在后面输入‘空格/r’
窗口样式:最大焦点
选择“启动时自动运行程序”
程序:2关机
名字:关机
程序:(浏览)找到关机的启动程序
‘C:\windows\system32\shutdown.exe’
命令行参数:(浏览)输入‘-S空格-T空格00’
-i 显示GUI界面,必须是第一个选项
-l 注销(不能与选项-m一起使用)
-s 关闭计算机
-r 关闭并重启计算机
-a放弃系统关机
-m \\computername 远程计算机关机、重启、放弃
-t xx 设置关闭的超时为xx秒
-d [u][p]:xx:yy 关闭愿意代码u是用户代码p是一个计划的关闭代码xx是一个主要原因代码yy是次要原因代码
窗口样式:正常焦点
选择“在桌面锁定窗口里添加一个按钮”
(3)口令选项卡:(1)改变口令
(2)选择相应的选项。
AcknowledgeAcknowledge [tag_name]确认一个或一组报警。
此命令不能对已经执行的,但对执行过程中如有错误产生,可以显示出一条信息。
如有确认位同报警相关,确认报警会将确认位置位.[tag_name] 被确认的标签名称.可以是一个标签的名称或含有通配符的标签名称或[tag]文字字符串.如没有设定标签,此命令将确认最近的最严重等级的未确认的报警.[tag] 确认激活的图形显示中高亮对象有关的标签报警.注意:如果报警发生的速度很快,不要使用没有标签名称的Acknowledge命令, Acknowledge命令将可能对新报警进行确认而不是对用户打算确认的报警.举例: Acknowledge命令Acknowledge Hopper1\Flow确认所有对标签Hopper1\Flow的报警.Acknowledge Hopper1\*确认在文件夹Hopper1中的所有的标签的报警Acknowledge *确认所有报警Acknowledge [tag]确认在激活图形显示中高亮对象有关联的标签报警AcknowledgeAllAcknowledgeAll确认全部报警。
此命令比Acknowledge*命令运行速度快。
此命令不能对已经执行的,但对执行过程中有错误的可以显示出一条此命令中对信息。
如果报警有确认位,确认报警为,确认报警会将确认位置位。
此命令中对标签数量没有限制。
ActivityActivity打开活动记录设置(Activity Log Setup)编辑器ActivityBarOnActivityBarOn显示活动条用户第一奖活动条拖离原位,移动到屏幕的任何位置移动时先点中Clear和Clear All之间的位置,然后拖动鼠标。
点击标题条并拖动该条直到碰触到RSView32的状态条,就可以使活动条复位。
拖动活动条的一角或一边旧可以重新设置其尺寸。
ActivityBarOffActivityBarOff隐藏活动条ActivityOffActivityOff停止活动记录ActivityOnActivityOn启动活动记录ActivityViewerActivityViewer打开活动记录查看器(Activity Log Viewer)AlarmAlarm打开报警设置(Alarm Setup)编辑器AlarmLogOffAlarm Log Off停止报警记录AlarmLogOnAlarmLogOn启动报警记录AlarmOffAlarmOff停止报警监视此命令不能显示已经执行的,但对执行中有错误的可以显示出一条信息。
AlarmOnAlarmOn [/H]启动报警监视。
此命令不能对已经执行的,但对执行中有错误的可以显示出一条信息。
[\H] 启动报警当初时接通握手,此时对报警中任何标签置位握手位。
为使项目开始时就启动报警,应在Startup编辑器中点击Alarming复选框。
AlarmViewerAlarmViewer打开报警记录查看器(Alarm Log Viewer)AppAbortAppAbort<application>关闭特定的Windows应用程序<application> 一个Windows应用程序的名称,即为在应用程序标题条中显示的名称。
举例:AppAbort命令如果Notepad(Windows中的记事本应用程序)被打开,并包含一个未命名的文件,在Notepad 标题条中就将显示Untitled-Notepad,如希望关闭Notepad用户应如下键入标题条中的显示内容:AppAbort Untitled-NotepadAppActibateappActibate<application>激活特定的Windows应用程序。
此应用程序必须是已经在运行的。
(用户可使用AppStart命令来开始一个应用程序)<application> 用户希望激活的Windows应用程序名称,此名称应与标题条中的名称一致AppStartAppStart<application>使用此命令可以启动另外Windows的应用程序或编程好的“应用扩展”(Application extenden)。
<application> 希望执行的程序的路径和文件名举例:AppStart命令AppStart c:\windows\notepad c:\autoexec.bat打开Notepad显示autoexec.bat文件AppStart c:\program files\netscape navigator\program\netscape.exe打开Netscape Navigator TM软件.BeepBeep使用声音(wave)文件从计算机扬声器中产生声音,声音由Windows Control Panel中的默认声音(Default Beep)定义的wave文件决定。
ChannelChannel打开通道(channel)编辑器ClassClass打开扫描(Scan Class)编辑器CommandLineCommandLine打开命令行ComStatusComStatus<On>or<Off>根据RSView32的设置停止或开始记录通信错误为记录通信错误,确保已经在活动记录设置(Activity Log Setup)编辑器其中选择了Communications选项。
在Startup编辑器中点击Communication Status复选框使项目开始时自动开始记录通信错误。
DatabaseDatabase打开标签数据库(Tag Database)编辑器DatabaseSyncDatabaseSync将RSView32的标签数据库转换为二进制格式。
下列情况下使用此命令:●如果改变项目使用的标签数据库(使用Project Paths对话框)●在使用第三方软件对标签数据库进行了访问或编辑为同步标签数据库:1.摘命令行中键入DatabaseSync然后按回车。
2.关闭项目。
3.打开项目,数据库将在打开时被同步。
DataLogDataLog[file]在没有参数的情况下打开数据记录设置(Data Log Setup)编辑器,在有参数的情况下,打开特定的数据记录文件。
[file] 用户希望在数据记录设置(Data Log Setup)编辑器中编辑的数据记录模式的名称。
如果不定义文件名称,该命令将打开编辑器使用户建立新模式文件。
DataLogNewFileDataLogNewFile <file>为特定模式建立新的数据记录文件<file> 产生新的数据记录文件的数据记录模式名称DataLogOffDataLogOff<parameter>对所有的模式或特定停止数据记录<file> 停止数据记录的数据记录模式名称* 停止对所有模式进行数据记录DataLogOnDataLogOn<file>启动特定模式的数据记录<file> 开始数据记录的数据记录模式名称在启动(Startup)编辑器中,点击Data Logging复选框并指明一个文件,使项目开始时自动启动数据记录。
DataLogSnapshotDataLogSnapshot<file>对一个特定模式的数据记录文件进行一次数据捕捉<file> 特定的数据记录的名称注意:在DataLogSnapshot命令开始前,数据记录模式必需在运行。
DDEExecuteDDEExecute<application>|<topic><command>通过DDE通道向一个应用程序发送一个或一系列命令<application> 希望向它发送命令的服务器应用程序名称。
通常是应用程序的exe文件名除去.exe(扩展名)的部分。
<topic> 通信的标题名,以“|”符号开始,很多支持DDE的应用程序都识别名为System的名称。
<command>可以被服务器的应用程序识别的一个命令或一系列命令。
多个命令必需在一个字符串内。
如果命令字符包含惊叹号(!),则要将此字符串用引号引起。
对于字符串中已经包含引号的,应可使用双引号。
注意使用此命令前,服务器的应用程序必需先运行(可以被最小化)举例:DDEExecute命令DDEExecute RSlinxl__Drivers[Who_active()]传送Who_Active命令,显示缺省的Super-Who窗口。
Drives必需以两个下划线开始DDEExecute WINAB5ISYSTEM.SR3向WINtelligent LOGIC 5 (WINAB5)传送命令.SR 3,代表搜索Rung 3。
DDEExecute WINAB5ISYSTEM.UI向WINtelligent LOGIC 5 (WINAB5)传送命令.UI,代表显示System Information窗口。
DDEExecute Winrecip|IcomDdeExe[CONTROL_PANEL_DEFAYULTS()]向WINtelligent Recipe传送命令,代表打开缺省的DDEPokeDisableDDEPokeDisable禁止外部应用程序影响DDE,使这些应用程序不能改变中的标签值。
如果RSview32的DDE 服务器不在运行,就是说,DDEServerOn命令没有运行,DEPokeDisable也将启动RSview32的DDE服务器。
缺省设置下,是禁止的,所以DEPokeDisable命令只在使用了DDEPokeEnable命令后才启动命令后才有效。
在启动RSview32的DDE服务器之前,Windows NT必需设定成Network DDE DSDM自动启动,详细内容祥见内容参见17-5页。
DDEPokeEnableDDEPokeEnable允许外部应用程序影响DDE,这些应用程序可以改变RSview32中的标签值,如果RSview32的DDE服务器不在运行,就是说,DDEServerOn命令没有执行,DDEPokeEnable也将启动RSview32的DDE服务器。
缺省设置下,是禁止的。
在启动RSview32的DDE服务器之前,Windows NT必需设定成Network DDE DSDM自动启动,详细内容参见17-5页。
DDEServerOffDDEServerOff停止运行RSview32DDE服务器DDEServerOnDDEServerOn运行RSview32 DDE服务器,允许DDE客户段应用程序读取(但不能写入)标签值,此命令不能从其他Windows应用程序中使能DDE存数,要是能存数,使用DDEPokeEnable命令。