PviSimpleCon 编程实例显示了在一个简单的控制台应用程序(无窗口的Windows应用程序)中读取变量数据。该程序是用C函数构建的。
变量数据和变量对象的状态以及CPU对象的状态(CPU连接状态)通过控制台的标准输出设备(stdout)输出。
对于PVICOM 的用户信息, 使用的是SET_PVIFUNCTION 类型 。
该编程实例包含以下文件。
File |
描述 |
PviSimpleCon.dsp, PviSimpleCon.dsw |
Visual C++ 6.0的工作区和项目文件。(32位PVI)。 |
PviSimpleCon.vcproj, PviSimpleCon.sln |
Visual C++ 2008的解决方案和项目文件。(32和64位PVI)。 |
PviSimpleCon.cpp, PviSimpleCon.h |
这些文件包含定义和C函数。 |
额外的文件用于保存程序资源,并由Visual Studio管理。
编程实例的核心部分是类型为T_PVIOBJ_CONFIG的配置表g_PviObjList。 该表包含所有使用的PVI对象的名称和参数。
下面的函数作为例子:
Function |
Description |
|
main |
1. PVI initialization: |
当 PviInitialize 函数被调用时,客户端实例被注册,与PVI管理器建立连接。全局事件 POBJ_EVENT_PVI_ARRANGE 和 POBJ_EVENT_PVI_DISCONN 被激活,以表明连接状态。 |
2. Central program loop: |
每次 调用PVICOM PviGetNextResponse 函数时,都会读取下一条 PVI 用户信息。如果没有找到用户信息,在wParam中返回值0。有了有效的用户信息,用户参数IParam和hMsg也被读取。用户参数IParam是一个指向对象条目(Typ T_PVIOBJ_CONFIG)的指针。用户参数hMsg在这个编程例子中被用作一个函数指针。该函数指针决定了任务或事件的信息传递函数。 |
|
3. PVI deinitialization: |
当 PviDeinitialize 函数被调用时,客户端实例被删除。与PVI管理器的连接被终止,所有 链接对象 和临时 进程对象 被启用。 |
|
OnPviArrangeEvent |
这个消息传递函数用于全局事件 POBJ_EVENT_PVI_ARRANGE。 示例程序的 所有 链接对象 和临时 进程对象 是使用异步函数 PviCreateRequest 创建的 。 |
|
OnPviCreateResponse |
这个消息传递函数用于响应请求函数 PviCreateRequest。 用户参数IParam是一个指向对象条目(Typ T_PVIOBJ_CONFIG)的指针。响应数据中报告的错误意味着在PVI管理器中无法创建对象(例如,无效的对象名称,对象描述中的语法错误,等等)。 |
|
OnPviDisconnEvent |
这个消息传递函数用于全局事件 POBJ_EVENT_PVI_DISCONN。 PVI连接的错误状态会在控制台窗口输出。 |
|
OnPviDataEvent |
这个消息传递函数用于错误状态或所有创建的PVI对象的数据。 用户参数IParam是一个指向对象条目的指针(Typ T_PVIOBJ_CONFIG)。变量数据以32位整数格式提供(格式在配置中定义)。CPU或变量对象或变量数据的错误状态将显示在控制台窗口中。 如果没有为链接对象指定数据格式(与本例不同),变量数据将以PLC变量的格式提供。如果PLC变量的格式发生变化,必须对应用程序进行相应调整。应用程序总是可以使用 POBJ_EVENT_DATAFORM 数据格式事件来获得关于当前数据格式的信息。 |