PviSimple 编程实例展示了Visual Basic应用程序中变量数据的读写。
这些设置是在一个INI文件中管理的。
对于PVICOM 的用户信息, 使用了不带数据的Callback 类型 。
该编程实例包含以下文件。
File |
描述 |
PviSimple.vbp, PviSimple.vbw |
Visual Basic项目工作区和Visual Basic 6.0的Visual Basic项目。 |
PviSimple.exe |
可执行的演示程序。 |
frmPviSimple.frm |
应用程序启动时显示的对话框。 |
PviCom.bas |
用于Visual Basic应用程序的PVICOM功能描述模块。 |
fktMain.bas |
Visual Basic模块。PVI对象结构的声明。应用程序在函数Public Sub main()中启动。 |
fktPviObjects.bas |
Visual Basic模块。调用PVI函数和PVICOM回调函数。 |
下面的功能作为例子。
Function |
Description |
fktMain.bas module |
|
main |
项目启动时的函数。全局PVI对象结构pPviObj()被写入对象名称和它们的连接描述。 这个函数可以用来调整对象名称(连接设置和变量名称)。 |
fktPviObjects.bas module |
|
这个消息传递函数被用作 全局事件 POBJ_EVENT_PVI_ARRANGE的PVI 用户消息。在事件 POBJ_EVENT_PVI_ARRANGE中 , 所有在例子中使用的PVI对象都被创建(CreatePviObjects)。 |
|
这个消息传递函数被用作 全局事件的PVI 用户消息 。 事件 POBJ_EVENT_PVI_CONNECT 和 POBJ_EVENT_PVI_DISCONN用于 显示PVI连接状态。在事件 POBJ_EVENT_PVI_ARRANGE中,在 例子中使用的所有 PVI 对象都被创建(CreatePviObjects)。 在事件 POBJ_EVENT_PVI_CONNECT 中可能不会创建有或没有临时进程对象的链接对象。只有事件POBJ_EVENT_PVI_ARRANGE可以保证这个客户端实例的任何先前创建的链接对象和临时进程对象不再存在。 |
|
示例程序的 所有 链接对象 和临时 进程对象 都是使用异步函数 PviCreateRequest 创建的 。除了CPU对象,这个例子中的所有对象都被设置为状态 "非活动"。对于所有的变量对象, 定义了一个 类型变化 (cast)到一个双倍数据类型(VT=f64)。相应的数据格式在链接对象的描述中指定。 变量和CPU对象中的错误和数据在回调函数 OnPviDataEvent()中读取 ,创建的PVI对象的Link ID在回调函数 OnPviCreateResponse中 使用函数PviCreateResponse读取 。 |
|
这个消息传递函数被用作PVI 用户消息 ,用于响应请求函数 PviCreateRequest。 用户参数IParam对应于PVI对象结构pPviObj()中由ENUM函数 "PviObject "指定的偏移。与响应数据一起提供的PVI对象句柄(LinkID)被存储在这个对象结构中。对于所有的变量对象,状态被改变为激活,除非 已经按下了Idle 。响应数据中报告的错误意味着在PVI管理器中无法创建该对象(例如,无效的对象名称,对象描述中的语法错误,等等)。在这种情况下,错误会显示在各自变量的输入/输出文件中,或显示在一个消息框中。 |
|
这个信息传递功能作为PVI 用户信息, 用于错误状态和所有变量对象的数据(在编程实例中最多4个)。 用户参数LPARAM与 PviCreateRequest 函数(见 CreatePviObjects) 指定的EventMessage号码的值 相对应。数据或报告的错误显示在相应的PLC变量的输入/输出区域。变量数据以Double格式提供(如在创建 链接对象时指定 )。 如果没有为链接对象指定数据格式(与本例不同),变量数据将以PLC变量的格式提供。如果PLC变量的格式发生变化,必须对应用程序进行相应调整。应用程序总是可以使用 POBJ_EVENT_DATAFORM 数据格式事件来获得关于当前数据格式的信息。 |
|
Form_Load |
进行PVI初始化。当 PviInitialize 函数被调用时,客户端实例被注册,与PVI管理器建立连接。为了显示连接状态, PVI中的全局事件 被激活(OnPviDisconnectEvent 和 OnPviArrangeEvent)。 |
进行PVI去初始化。当 PviDeinitialize 函数被调用时,客户端实例被删除。与PVI管理器的连接被终止,所有 链接对象 和临时 进程对象 被启用。 |