工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01

  最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢。

不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容。

一、对象

  OOP是编程规模发展到一定程度后才出现的,因为不但操作系统的程序规模越来越大,而且应用

程序的规模也是日益增长。

  代码重用在OOP出现后又是进一步提升。

  什么是对象呢?  按照以前Unix的套路:一切皆文件。  在这里也可以说一切皆对象。计算机本身

也可以看做一个对象。

  对象具有特征和功能,特征表现为属性,功能表现为方法。

  具体不啰嗦,可以看看计算机概论一类的书。

二、代码

  

‘对象

‘对象的特点
‘从本质上来说对象是内存中的一块内存区域,这块区域和变量一样
‘但是对象和变量又存在差距。对象必须利用专门的语句进行关联后才
‘能引用,且在使用完毕后必须用专门的语句进行销毁才能保证占用的
‘内存被回收,否则就会造成“内存泄露”

Option Explicit

‘创建对象
Dim objDict
‘1、通过CreateObject函数创建对象,这个函数需要传递一个必须的参数
‘   这个参数指定要创建的对象的类型。 这个参数在系统中叫做
‘   progID,  如下面的"Scripting.Dictionary"就是ProgID
‘2、通过CreateObject函数创建的对象,只是存储在内存中,我们还不能直
‘   接进行操作,这个函数会返回一个对象的引用,如果不将这个返回的引用
‘   与某个变量联系起来就无法访问对象。
‘3、通过set语句将创建的对象与变量联系起来,这个过程也叫实例化对象。
‘   如下所示
Set objDict = CreateObject("Scripting.Dictionary")
MsgBox objDict.Count

‘4、如果对象使用完毕,那么必须对其进行撤销,否则对象占用的内存就不会
‘   回收,这样就会造成内存泄露,因此必须进行撤销。通过下面的语句
‘   撤销对象。 当然如果脚本小那么在脚本结束运行的时候,系统会自动撤销
‘   对象。 这个意思是说对象在超出作用域的范围后会自动撤销。
Set objDict =Nothing

If objDict Is Nothing Then
    MsgBox "对象objDict已经撤销"
End If

‘脚本运行时对象
‘脚本运行时对象必须通过其他对象创建才能访问。最典型的就是文件系统对象
Dim objFSO
Set objFSO = CreateObject("Scripting.FileSystemObject")

Dim objFolder
‘下面的语句必须已经创建了文件夹:D:\01_vbs, 否则会出错
Set objFolder = objFSO.GetFolder("D:\01_vbs")

‘对象的访问
‘对象具有属性和方法, 属性表示对象的一些特征
‘方法用来改变属性的特征, 对象的属性和方法通过下面的语法格式进行访问
‘   对象.属性
‘   对象.方法
MsgBox objFolder.Drive   ‘访问创建的objfolder对象的驱动器属性
MsgBox objFolder.Name    ‘访问创建的objfolder对象的名称属性
MsgBox objFolder.Path    ‘访问创建的objfolder对象的路径属性

‘访问对象的方法,通过文件夹对象的CreateTextFile方法创建文件
objFolder.CreateTextFile "对象新建的文件.txt",True,False

‘我们可以查看文件夹对象下的文件,这个需要通过集合来访问
‘文件夹对象下有一个文件集合,我们通过传递集合下的元素的名称来访问集合
‘同样文件也是一个对象,因此也需要进行实例化
‘如下所示
Dim objFile
Set objFile = objFolder.Files("对象新建的文件.txt")

‘同样通过下面的方法访问对象属性
MsgBox objFile.Name & "创建的时间为:" & objFile.DateCreated

‘访问对象的特殊语句 With语句
‘因为对象的属性和方法均具有一个共同的特点:归属于同一个对象
‘因此为方便,vbs提供了一种简便的访问方法就是
With objFile
    MsgBox  "Drive is:" & .Drive & vbNewLine &_
            "Path is:" & .Path & vbNewLine
End With

三、WinCC中的对象模型

  要理解WinCC中的VBS脚本,大体有前面几篇随笔的内容和本篇随笔的内容基本够用了,需要

补充的是属于WinCC特有的VBS对象模型。这里暂时不多说,只用一张图

  WinCC中VBS的对象模型。

四、小结

  对于WinCC的VBS脚本,大体需要的关于VBS的基本知识已经描述完毕,其他的高级功能需要

进一步学习的可以参考微软的出版物《vbs脚本参考》

  从我本身这些年的WinCC的使用经验来看,前面描述的基本够用,一般不会用到太复杂的功能。

后面在描述一些关于文件系统对象的知识后就全面的描述WinCC的相关内容。

--------------------------------------------------------------分割线---------------------------------------------------------------

1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

4、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线---------------------------------------------------------------

原文地址:https://www.cnblogs.com/volcanol/p/10199093.html

时间: 2024-10-02 10:22:40

工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01的相关文章

工控随笔_07_西门子_WinCC利用命令行实现操作log日志

在WinCC中可以通过报警纪录来实现操作员纪录,这个需要WinCC的消息系统进行组态和配置. 利用消息系统进行实现上诉功能不但复杂而且时间久啦也不方便查询.那么有没有一种简单的方法来 实现操作员纪录呢? 我们知道在Windows系统中可以通过批处理来实现很多功能,而且操作也比较简单,学习起来也 没有多大的难度.那么我们是否可以Windows的批处理功能来实现日志功能呢? 一.WinCC执行外部程序. 在WinCC中通过 ProgramExecute("notepad.exe"); 函数

工控随笔_03_西门子_Step7项目打开后CPU显示问号解决方法

我们在利用西门子的S7-300/400 PLC的编程软件Step7的时候会出现下面如图所示的问题. 在打开项目的时候,我们会在Simatic Manager里面看到CPU以及一些其他一些组件显示问号. 图.CPU显示问号 一.问题产生的原因 这个问题产生的原因是我们利用低版本的Step7 打开项目的时候,由于Step7 里面没有最新的 硬件的描述性文件导致的. (说明: 西门子的硬件说明文件时.xml格式的文件). 二.解决方法 解决方法有三个: 升级Step7 .重装系统.升级硬件描述性文件.

工控随笔_C#连接PLC_之_C#入门_05_类_01

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Class { class Program { static void Main(string[] args) { /* 变量定义: 变量类型 变量名: * * 变量初始化 变量类型 变量名=初始值: * * 变量在使用前必须赋值 */ int iVar; //定义变量, int类型即为 int32类型,

工控随笔_C#连接PLC_之_C#入门_01_配置学习环境

最近在做一个东西,需要用到通用开发语言开发一个软件来读取PLC的内容,这方面的难点在于解析PLC利用 以太网通讯的通讯协议,而一般的PLC厂商对自己的协议是封闭的,对一般的开发者是不开放的,虽然可以通过Wireshark 进行解析,但是工作量很大,且如果对Wireshark不熟悉基本也是无解,很难解析出来. 网上有部分用C#开发的开源库,但是自己对C#语言不懂,所以也就没法学习和应用了.因此我在这里开始了C#的 从零开始学习之旅(我的从零开始是指对C#一无所知,如果你要和我一起开启这趟旅程,应该

工控随笔_C#连接PLC_之_C#入门_04_基本数据类型

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { #region 浮点类型 /*C#中浮点数据类型分为三种 float 类型 double 类型 decimal 类型 三种类型差别在于数据有的精度和有效数据范围不同

工控安全入门分析

转载(http://bobao.360.cn/learning/detail/659.html) 0x00写在前面 工业4.0,物联网趋势化,工控安全实战化.安全从业保持敏感,本篇以科普角度对工控安全做入门分析,大牛绕过,不喜轻喷. 0x01专业术语 SCADA:数据采集与监视控制系统 ICS:工业控制系统 DCS:分布式控制系统/集散控制系统 PCS:过程控制系统 ESD:应急停车系统 PLC:可编程序控制器(Programmable Logic Controller) RTU:远程终端控制系

Wireshark工控协议

Wireshark是一个强大开源流量与协议分析工具,除了传统网络协议解码外,还支持众多主流和标准工控协议的分析与解码. 序号 协议类型 源码下载 简介 1 Siemens S7 https://github.com/wireshark/wireshark/tree/master/epan/dissectors/packet-s7comm.c 西门子PLC支持的通讯协议 2 MMS(IEC61850) https://github.com/wireshark/wireshark/tree/mast

火力发电厂工控系统网络安全解决方案 - 对比分析

发电厂网络概述 火电厂网络架构中涉及的系统主要包括:火电机组分散控制系统DCS.火电机组辅机控制系统DCS\PLC.火电厂级信息监控系统.调速系统和自动发电控制功能AGC.励磁系统和自动电压控制功能AVC.梯级调度监控系统.网控系统.继电保护.故障录波.电能量采集装置.电力市场报价终端等系统. 电力行业在安全方面是考虑地比较早的,形成了"安全分区.网络专用.横向隔离.纵向认证"的总体原则. 区域一般分为:生产控制大区(控制区+非控制区),管理信息大区. 也有情况下,电厂会将区域分为4个

最新工控\建模仿真\组态\监控集成开发平台源码解决方案2018

最新工控\建模仿真\组态\监控集成开发平台源码解决方案2018 -- ---所有VC++源码100%提供! 使用E-Form++可视化企业版本,构建属于自己的专业工控.建模仿真. 监控组态.培训仿真平台! -- 100%源码 (全部采用Visual C++/MFC编写)彻底开放组态平台!  下载E-Form++全功能免费评估版本 -- 下载地址 (2018年全新!)  下载此组态解决方案-- 下载地址1 下载地址2 (2018年全新!) HMI硬件采集数据接口代码及说明: 下载硬件数据接口dll