为了设置和编程可视化,使其满足必要的要求,重要的是要知道实际终端产品“可视化”和PVI 与 控制器之间的数据采集之间的不同类型的通信。
PVI不仅仅是一个使用特定协议在PVI客户端和控制器之间交换数据的通信驱动程序。
本培训模块将说明 PVI 通信的可能性和优势:
•PVI 客户端与 PVI 之间的通信
• 控制器和 PVI 之间的通信
• 多个 PVI 实例之间的通信 (客户端/服务器模式)
Fig. 1: PVI communication
简短的练习和任务将被用来说明各种类型的通信的可能性和使用领域。
这些练习不需要编程知识。PVI服务器和开发/开发安装中包含的一些程序以及Automation Studio都可以使用。
学员将在了解不同类型的PVI通信。
学员将了解数据获取、 数据传输和数据管理的内部流程,以便正确设置和编程通信,确保 自己的应用获得最佳数据传输速度。
通过单独练习后, 学员将能够处理 PVICOM 接口、PVIServices、PVIControls.NET以及和PVI OPC 服务器的编程。
Fig. 2: Overview
通过 频繁引用到 "PVI help PVI帮助信息 ", 参与者还将了解如何通过这个help结构和如何找到与自己的问题和要求有关的详细信息。
任何对B&R控制器进行过编程的人都已经使用过PVI客户端应用程序 "Automation Studio"
甚至 Automation Studio 也是 PVI 客户端传统意义上的,它通过选择的媒介(串行、CAN、TCPIP等)与 B&R 控制器交换数据。
Fig. 3: PVI client communication
本章介绍PVI 客户端 和 管理器之间通过 PVICOM 接口进行的通信。
PVI Manager 管理器 (PVI 的核心组件) 处理管理所有类型的处理 数据, 从简单的处理变量到 列表、程序或数据对象.
Fig. 4: PVI Manager
PVI 管理器根据时间顺序和方向组织流程数据。也就是说,PVI 管理器根据用户配置(方向、协议、介质、设备等)协调数据传输。
异步管理受到特别关注,以便能够适应其他任务的网络延迟或协调其他任务之间的事件处理。
PVICOM 接口(客户端接口)建立了对 PVI 的最底层访问。
Fig. 5: PVI client interface
因此,这是性能最佳的 PVI 接口。
所有基于 Windows 的 PVI 访问组件都使用 PVICOM 接口。
PVI 管理器可作为普通 Windows 进程或 Windows 服务启动。唯一的区别是,在 Windows 中更换用户(注销)时,作为服务的 PVI 管理器不会自动终止。
可以在安装 PVI 软件包时选择该选项。启动 PVI 管理器时,系统托盘中会显示不同的 PVI 管理器图标。
PVI Manager as process…
PVI Manager as service…
PVI 管理器管理对象结构(即对象层次结构)中的所有进程。
层次结构中的每个进程对象都承担着特定的任务,并使用唯一的名称(路径名)和相应的参数进行定义。
Fig. 6: PVI object hierarchy
Note:
在编程和设置 PVI 客户应用程序时,有必要了解对象层次结构。
进程对象代表通信连接的一个特定逻辑/物理部分或控制器上的一个对象。
Fig. 7: Process object type - Device
流程对象由以下组件定义:
•对象名称
•对象类型
•连接说明 (CD)
无论用户是通过 PVICOM 接口使用 PVICOM 功能编程技术,还是使用配置文件或配置器建立 PVI 服务器通信,PVI 对象层次结构和所有访问类型的定义都是相同的。
PviServices 以服务、CPU、任务和变量类构成用户端的对象层次结构,并通过定义属性进行配置。
练习: 学习 以了解流程对象 PVIDEMO 用于解释对象层次结构、 对象 名称、 对象类型和连接说明。 PVIDEMO.EXE 位于以下目录:C:\BrAutomation\Samples\Pvi\Vc\PviDemo\Release\PviDemo.exe |
Fig. 8: PviDemo.exe
配置窗口在启动后打开演示 "对象"按钮。
窗口中的每一行代表一个流程对象。
PVI 基础对象无需明确定义。它由 PVI 管理器自动管理,并贯穿 PVI 管理器的整个运行过程。
通信协议通过线路对象指定。
Name: @/Pvi/LNINA2
Connection description: CD=LnIna2 (name of the line DLL)
设备对象定义了 PC 与外部世界的物理连接。
Name: @/Pvi/LNINA2/COM1
Connection description: CD="/IF=com1 /BD=57000 /PA=2"
站点对象代表网络中的一个站点。
Name: @/Pvi/LNINA2/COM/PVITEST
Connection description: CD=""
一个或多个 CPU 对象定义了与一个或多个控制器的连接。
Name: @/Pvi/LNINA2/COM1/PVITEST/CPU
Connection description: CD=""
变量映射到任务对象上,其中的本地或全局控制变量用于用户任务。
Name: @/ Pvi/LNINA2/COM1/PVITEST/CPU/pvitest
Connection description: CD=“pvitest“ (task name on the controller)
变量对象代表一个控制变量,数据类型不限。
Name: @/ Pvi/LNINA2/COM1/PVITEST/CPU/pvitest/Pvar1
Connection description: CD=“PV1“ (variable in the "pvitest" task)
注意
全局变量也可以直接在 CPU 对象中注册。不过,我们建议在一个任务对象中设置所有变量,因为这样可以大大加快注册(识别符号变量名)所需的时间。
练习:检查对象名称和 PVI 监视器/快照查看器中的连接描述: 快照查看器用于诊断单个 PVI 对象的运行状态。更多详细信息请参阅 PVI 用户文档。 |
双击系统盘中的 PVI 管理器图标或从快捷菜单中选择 PVI 监视器,即可启动 PVI 监视器。
本练习的步骤
•使用组合键<ALT> + <F9>打开快照查看器窗口。
•按下 <F5> 键,拍摄在 PVI 管理器上注册的所有进程对象及其运行状态的快照。
•选择 "进程对象 "条目
•通过展开各个对象来显示对象层次结构、对象名称和连接说明。
Fig. 9: PVI SnapShot Viewer
练习:更改连接描述 本任务的目的是更改 "PviDemo"(即 "连接 "列)中的连接描述,以便建立 TCPIP 连接。 可以在快照查看器中检查更改。 |
您可以在 PVI 用户文档中阅读有关线路特定参数的信息。
Fig. 10: PVI line documentation
目标 •更改连接描述不需要更改对象名称 •使用 PVI 线路文档 •使用 PVI 快照查看器检查和评估 PVI 对象 结果 •对象名称是一个符号名称,因此与连接说明无关 •Device object: •CPU object: |
进程对象可以创建为临时进程对象或静态进程对象。两种类型的方法相同。
Static process objects 静态过程对象
静态进程对象只需设置一次,并在 PVI 管理器的整个运行期间保持不变。
静态进程对象在以下情况下具有优势:
•需要多次启动和停止并需要大量进程对象的 PVICOM 应用程序
•对象结构应集中管理。在启动时(如 Windows 启动),生成器或配置器(如 PVICOM 应用程序)会设置所有需要的进程对象。然后再结束应用程序。
•接口服务器在整个 PVI 管理器运行期间保持激活状态,并在启动后立即提供必要的对象结构信息。
Temporary process objects 临时过程对象
临时进程对象与链接对象(= 活动进程对象)一起建立。释放链接对象或终止 PVICOM 应用程序时,临时进程对象也会被删除。
临时进程对象在以下情况下非常有用:
•PVICOM 应用程序启动和停止的次数不多,或者只需要几个进程对象
•仅在 PVICOM 应用程序中短暂使用且很少需要的进程对象(例如用于执行服务)
•如果进程对象的连接描述在运行期间被修改,那么它和所有下属对象都应被设置为临时进程对象。
上述各点仅供决策参考。PVICOM 应用程序使用的流程对象类型需要根据需求来决定。不过,如果有疑问,最好还是选择临时流程对象,因为它们更容易处理。
Note:
PVI OPC 服务器和 PVIControls 只使用静态进程对象。用户可以通过在 PVIControls.NET 的 ACConfigurator 中设置一个属性来定义。
举例说明:
具有多个屏幕页面的可视化是使用静态和临时流程对象的典型例子。
使用静态过程对象:
•启动可视化时,所有对象都被设置为静态对象(即只创建进程对象,不创建链接对象)。
•要在屏幕页面上显示变量,必须在相应的变量进程对象上创建链接对象。
•现在,变量将由 PVI 管理器/PVI 线路读取和监控。链接对象的响应数据中会接收到数据变化,并可据此进行评估 = 激活的流程对象。
•更换图片时,链接对象将再次被清除,但过程对象仍然保留。变量读取被停用 = 非活动过程对象。
•如果需要多次显示同一变量,则在同一进程对象上创建另一个链接对象。这样就可以独立显示和关闭屏幕页面。
•这种方法的另一个优点是,每个链接对象可以有不同的缩放比例或数据类型。
Using temporary process objects
•所有进程对象在启动时都是临时设置的(即进程对象已经有一个链接对象)。
•如果在屏幕页面上显示了变量,则流程对象将切换为 "激活 "状态。
•PVI 管理器/PVI 线路将读取并监控该变量。链接对象的响应数据中会接收到数据变化,并可据此进行评估 = 激活的流程对象。
•更换图片时,过程对象将再次切换为 "非活动"(即变量读取被停用 = 非活动过程对象)。
•如果必须多次显示同一变量,则必须使用客户端应用程序来监控变量是否被多次显示。当不再需要该变量时,流程对象可切换为 "非活动"。
Note:
静态和临时流程对象的练习在培训模块 TM711(PVICOM 编程)和 TM712(PVIServices)中进行。
所有任务都在 PVI 管理器和生产线内 "异步 "处理。这意味着不会出现延迟,其他任务也可以转移。
不过,有时也有必要在 PVI 客户端应用程序中 "同步 "执行任务(例如从变量读取或写入请求)。
同步任务:
▪同步任务在函数调用中等待任务确认(响应数据)。
▪在此期间不能进行其他系统操作。
▪应避免在循环中进行同步函数调用。
▪同步任务不能在 PVI 线路中被 "阻塞"(即每次读取或写入都要在单独的通信帧中发送到控制器)。
•
异步任务:
•在异步任务中,应用程序在函数调用后被进一步处理。
•确认是在程序执行的同时 "异步 "进行的,是在一个自动调用的单独函数中进行的。读取任务的数据可在该函数中读取,或由写入任务进行确认。
•异步任务也可以在循环中读取。
•异步任务可以通过 PVI 线路阻塞。
•
当事件数据出现以及 "活动 "进程对象中的数据发生变化时,PVI 客户程序会收到通知。
根据所使用的编程环境,可提供不同的用户消息:
User messages |
说明 |
Windows message |
使用 Windows 消息发送信号。使用相应的响应函数读取响应或事件数据。这是 Visual C/C++ 应用程序的首选方法。 |
Callback with data |
使用回调函数发出信号。使用回调函数传输响应或事件数据。这是 Visual Basic 6.0 应用程序的首选方法。 |
Callback without data |
使用回调函数的信号。使用相应的响应函数读取响应或事件数据。 |
Asynchronous callback |
使用异步回调函数的信号。 使用响应函数读取响应或事件数据。此方法适用于不带窗口的 Visual C/C++ 应用程序。 |
PVICOM 应用程序还可以相互使用不同的用户消息变体。例如,Visual C/C++ 应用程序可以接收作为 Windows 消息的事件数据和作为回调的响应数据。
在设置 PVI 客户端应用程序时,每个变量的适当配置都会对通信性能产生重大影响。
注意
PVICOM 编程 TM711 和 PVIServices TM712 的相应培训模块中将提供有关可能性的练习示例。
PVI 管理器或 PVI 线路只监控切换为主动的流程对象/变量对象。
激活的变量越少,激活变量的刷新速度就越快。
哪些变量应切换为活动状态:
•显示在屏幕页面上的变量
•必须在应用程序后台读取的变量(如警报和趋势数据)
哪些变量应切换为非活动状态:
•仅在发生特定操作时由控制器请求或写入控制器的变量
•不显示的变量
PVI 监视器可用于评估向 PVI 管理器注册的过程对象数量和活动过程对象数量。
刷新时间决定变量对象的更新频率。
PVI 管理器/PVI 线路会尝试在该时间段内获取过程数据。控制器会监控事件变量(参见 3.1)在该时间段内的数据变化。
Caution:
定义的刷新时间并不能保证实际采集时间,因为这可能受到其他因素的影响:
- 控制器响应时间
- 活动变量的数量
- 与变量正常读取周期不同步的任务
- 使用的协议/媒介
Refresh time |
说明 |
-1 |
数据不会自动读取。不过,应用程序可以使用目标读取任务来控制数据采集。 |
0 |
过程数据只读取一次。读取在行初始化变量对象后进行。在 RF = -1 的情况下,应用程序可以使用目标读取任务控制进一步的数据采集。 |
> 0 |
变量对象会在指定的刷新时间(以毫秒为单位)内循环获得更新的过程数据。刷新时间的设置应符合流程数据的要求(电流大小)。 |
设置刷新时间
•变化缓慢的数据(如温度值)的相应刷新时间应在秒级范围内。
•只有在启动应用程序时才需要读取的变量(如设定值)应使用"= 0 "的刷新时间注册。
•只有在应用程序执行特定操作后才需要读取的数据,其刷新时间应为 ="-1"。
•用于显示运动的数据应使用较短的刷新时间。
例如:读取位置数据和温度值:
读取位置数据和温度值。
PosVar 刷新时间 = 200ms
TempVar 刷新时间 = 200ms
所有变量都在同一读取周期内读取。通过设置相应的刷新时间,也可以更频繁地读取需要高速变化的数据。
PosVar 刷新时间 = 200ms
TempVar 刷新时间 = 5000ms
从图中可以明显看出,变量 "PosVar "几乎可以在每个通信帧中读取,而变量 "TempVar "则不同,它只能在每 n 个通信帧中读取。
注意
PVI 无法实现 PC 和控制器之间的实时通信,因为变量的动态设置和 PVI 客户应用程序之间的通信无法保证所定义的时间。
对象属性控制着获取和处理外部变量对象过程数据的方法。
通过有针对性地应用这些属性,可以提高 PVI 客户程序与 PVI 管理器之间以及 PVI 管理器与控制器之间的通信性能。对于通信性能而言,最重要的属性是用于激活事件控制通信的属性 "e"(另见 3.1)。
Attribute |
Description |
r |
允许读取变量对象的进程数据。如果未指定此属性,读取访问尝试将被错误拒绝。PVI 管理器不会执行任何循环读取任务。 |
w |
允许写入变量对象的进程数据。如果未指定该属性,则写入访问尝试会被错误拒绝。 |
e |
操作模式 PLC 事件变量。PLC 监视过程数据的变化。因此,PVI 管理器无需执行任何循环读取任务(仅适用于 INA2000 和 NET2000 Line)。 |
h |
写入访问后的快速响应。使用 "h "对象属性可以缩短写入任务与所产生的数据更改事件之间的时间。但是,这并不能加快实际写入任务的速度。写入数据在传输到 PLC 之前会与过程映像进行比较,如果有变化,则会通过所有现有链接对象触发数据变化事件。 |
d |
直接触发 POBJ_EVENT_DATA 事件。d "属性仅在与 "e "属性相关联时有效。直接事件触发意味着生产线或 PLC 返回的所有过程数据都将直接发送到应用程序。 应用:如 CANDirect 生产线上的生命迹象监视器 |
可通过事件滞后为值变化定义过滤器。如果在变量对象中定义了事件滞后,则只有当值变化大于或等于该值时,才会触发从 PVI 管理器到 PVI 客户端应用程序的变化事件。
如图所示,当滞后值为 5 (HY=5)时,只有当数据变化大于或等于该值(例如从 4 到 10)时,才会向 PVI 客户端应用程序发送消息。
Fig. 11: PVI hysteresis
Note:
如果滞后与事件驱动通信一起使用(属性 = e),则控制器将根据定义的滞后监控数值变化。
在 PVI 客户端应用程序中注册数据类型为 "结构 "或 "数组 "的控制变量时,必须注意以下几点:
•可根据编程环境指定一定的结构对齐方式(例如 Visual Basic 6.0 与对齐参数 = 4)。
•结构和数组不能注册为事件变量(属性 = e)。
•注册这些数据类型时,刷新时间应为 "0 "或"-1",以防止它们被循环读取。
•如果控制器上只更改了结构或数组中的几个元素,则应将这些元素注册为单个变量。
•不可能对整个结构或数组进行"一致"传输(即 PVI 客户端应用程序和控制器的映像不一定完全相同 - 参见 2.6)。
•应避免从控制器和 PVI 客户端应用程序进行 "同时写入 "访问。
在控制器和 PVI 客户端应用程序之间传输数据时,数据传输必须"一致consistent"。
Note:
在与 INA2000 或 NET2000 线路进行 PVI 通信时,标量数据类型(SINT、INT、DINT、REAL 等)只有一种一致性。
如图所示,传输结构需要多个通信帧。如果在控制器上更改了该结构中的某个元素,那么在传输过程中该结构的图像就不再一致。
Fig. 12: Data consistency
在这种情况下,应用程序必须通过同步数据交换来处理数据一致性问题。例如,可以使用单独的写入或读取映像来实现这一点,通过触发变量进行访问。
注意
同步数据交换时,应始终评估唯一值变化(增量值变化)。由于 PVI 线路对控制器的访问是异步的,因此基于 BOOL 变量的同步可能会受到监控。
本节介绍 PVI 管理器、PVI 线路和控制器之间从注册过程对象到轮询或事件驱动数据传输的通信过程。
本节以 INA2000 线路为基础,因为该 PVI 线路是最常用的通信类型(与 SG3 和 SG4 控制器的在线协议)。
Fig. 13: PVI Line communication
每个新设置的带有线路连接的过程对象都会触发 建立连接(站和 CPU 过程对象)或对象识别(模块、任务和变量过程对象)的过程。
根据所使用的线路,该过程可能需要一些时间才能完成。
Note:
INA2000 线路:建议在一个任务对象中设置所有变量对象。与在 CPU 对象中设置变量相比,这样可以更快地识别变量。
如果流程对象启用后又要重新设置,则必须重复这一过程。因此,如果 PVICOM 应用程序只需设置一次流程对象,则会带来优势。
只要与控制器的连接已经重新建立,连接中断(拔下 PC 和控制器之间的电缆)也会导致(经过 x 次配置或定义的重复后响应超时)重新尝试建立连接。
如果临时创建了一个对象,则会在识别该对象后执行自动读取任务(活动进程对象),因此 也是对控制器的读取任务。数据更改后,将向 PVI 客户端应用程序发送一个数据事件。
静态对象仅被识别。只有在创建链接对象后,才会读取该对象并向 PVI 客户端应用程序发送数据事件。
Fig. 14: PVI Verbindungsaufbau
如果一个过程变量带活动事件掩码且刷新时间大于 0,则 PVI 线路开始从控制器循环读取该活动过程变量。
如图所示,过程变量"PV1"从控制器循环读取。
PVI 管理器将内部过程映像的值与读取的值进行比较,并在数据发生变化时向 PVI 客户端应用程序发送数据事件。
在一个请求帧中,可同时从控制器读取多个活动变量。
Fig. 15: PVI – Pollende Kommunikation
轮询通信的优势
•变量更新更快,刷新时间更短
轮询通信的缺点:
•当存在大量活动变量时,由于控制器无法在一次请求中读取所有变量,因此无法保证所有变量的刷新时间。
INA2000 和 NET2000 Line 可进行事件驱动通信(属性 "e")。
该视图显示仅使用事件变量时 PVI 与控制器之间的通信。
在这种情况下,PVI 和控制器之间只有一个生命迹象监控器处于活动状态,并为 CPU 进程对象定义了响应超时 (/RT=x)。
在控制器的空闲时间内,控制器通过定义的刷新时间 (RF=x) 监视每个事件变量。
Fig. 16: PVI – Event-driven communication
当控制器上的数据发生变化时,PVI 会在生命标识监控器的响应帧或 "正常 "数据响应中收到事件变量发生变化的通知。然后,PVI 线路读取这些变量。
事件驱动通信的优势
•不经常变化的变量(如警报变量)可减少循环通信的负荷。
•这样可以更快地读取刷新时间较短的变量。
•由于监控是在空闲时间进行的,因此不会对控制器造成负担。
Note:
通过将变量注册为"轮询"或"事件驱动",可实现符合各种要求的最佳通信性能.
PVI 提供PVI 远程连接,用于远程系统维护、两台或多台计算机之间的客户端/服务器应用程序或通过网络进行编程。
唯一的要求是 PC 之间要有 TCPIP 连接。
这样就可以从一台电脑创建与多台 PVI 服务器电脑的连接,或从多台电脑访问一台 PVI 服务器电脑。
在这种情况下,PVI 管理器和 PVI 客户应用程序位于不同的 PC 上。
Fig. 17: PVI Client – Server communication
如本章导言所述,PVI 远程连接可采用简单的客户机/服务器结构以及多客户机/多服务器结构。
下图所示为简单的客户端/服务器通信,用于远程维护或编程等。
Fig. 18: PVI Remote connection - client / server
Note:
PVI 客户电脑不需要 PVI 许可证(加密狗),因为 PVI 管理器只在 PVI 服务器电脑上运行。
该示例显示了多客户端/服务器架构,即本地 PVI 应用程序在一台 PC 上运行,但 PVI 客户端应用程序也可以运行。
Fig. 19: PVI Remote connection – multi-client / multi-server
设置远程连接的唯一要求是相关 PC 之间已存在 TCP/IP 通信。
至于是通过网线直接连接还是通过调制解调器拨号连接,这并不重要.
练习:连接 2 台个人计算机并测试 TCP/IP 连接 通过交叉网线连接 2 台个人计算机。在每台电脑上定义一个单独的 IP 地址。 PC #1: IP Address: 10.0.0.1 PC #2: IP Address:10.0.0.2 使用 PING 命令测试连接(注意:检查防火墙设置)。 <Start> / <Run> : cmd |
Fig. 20: Windows command prompt: Execute PING command
服务器电脑上的远程连接是在 PVI 监视器中设置的。
可通过 <Start> / <Programs> / <BrAutomation> / PviMonitor 或双击系统托盘中的 PVI 管理器图标启动 PVI 监视器。
可通过菜单 <Options> / <Manager Properties> 或组合键 <ALT> + <F7> 打开 PVI 管理器的属性对话框。
必须在此对话框中定义远程连接的端口号。
Caution:
Windows 使用 < 1024 的端口号。建议使用大于 10000 的端口号。
Exercise: 在管理器属性中设置端口号 在 PVI 监控程序中为远程连接设置端口号(默认:20000)。 然后必须终止并重新启动 PVI 管理器。对 PVI 管理器属性的任何更改只有在重启 PVI 管理器后才会生效。 |
在服务器电脑上启动 PVI 管理器后,将显示已配置的远程连接。
Fig. 21: PVI Monitor – TCPIP connection
从此,PVI 客户程序可通过 TCP/IP 远程连接访问控制器
Caution:
在本地连接中,PVI 管理器会在访问 PVICOM 接口时通过 "PviInitialize() "函数自动启动。
在远程连接中,必须手动启动 PVI 管理器(如 Windows 启动菜单或将 PVI 作为服务启动)。
在 PVI 客户程序中定义远程连接时,还需在 "PviInitialize() "函数中指定 PVI 服务器电脑的 IP 地址/计算机名称和端口号。
注意:
如果使用已安装的 PVI 组件(如 PVIControls、PVI OPC 配置器等),则在 PVI 进程对象对话框中进行定义。无需额外编程。
练习:测试远程连接 在前面的练习中,将一台 PC 设置为 PVI 服务器。 现在可以使用熟悉的 "PviDemo "来测试远程连接。C:\BrAutomation\Samples\Pvi\Vc\PviDemo\Release\PviDemo.exe |
启动 PviDemo 后,<Connect>(连接)按钮用于打开一个对话框,在该对话框中可以设置本地或远程连接。
PVI 服务器 PC 的 IP 地址和端口号已定义。
Fig. 22: PviDemo.exe – Remote connection
结果: •如果在没有网络连接的情况下启动 PviDemo,则在超时后会输出错误 12095(通信中断。 TCP/IP 错误)。 •当存在有效连接时,通过远程连接设置的进程对象将显示在 PVI 监视器中的 PVI 服务器 PC 上。 •在启动 PviDemo 的 PC 上未启动 PVI 管理器。 |
Fig. 23: PVI Server PC – Showing the process objects
Note:
如果只有一台 PC 可用于此练习,则可通过输入 IP 地址 "127.0.0.1 "来测试与只有一台 PC 的远程连接。
全局事件用于通知 PVI 客户端应用程序与 PVI 管理器的连接状态,应在每个打算作为远程应用程序运行的 PVI 客户端应用程序中使用。
Event |
说明 |
CONNECT |
通信实例(客户端)建立了与 PVI 管理器(服务器)的连接。 |
DISCONNECT |
通信实例(客户端)与 PVI 管理器(服务器)之间的连接中断。 事件数据会报告相应的错误代码。通信超时在识别客户机/服务器连接中断(PviInitialize)方面起主要作用。 |
ARRANGE |
该事件表明通信实例已在 PVI 管理器上进行了新注册。如果存在有效的客户机/服务器连接,则会触发该事件。 |
全局事件 CONNECT 和 DISCONNECT 是客户机/服务器连接状态的信号。
当需要重新设置连接对象和临时进程对象时,ARRANGE 事件会向应用程序发出信号。
如果客户机/服务器连接中断时间较长(通信超时加倍),则 PVI 管理器会自动注销通信实例并释放所有分配的连接对象。如果连接稍后建立,则 PVICOM 应用程序必须重新设置所有对象。ARRANGE 事件可用于自动控制这一过程。
Note:
更多相关信息,请参见 PVI 用户文档 PVI帮助信息。
通过本培训模块的学习,学员将了解 PVI 客户应用程序与控制器之间的通信。
既可以通过对各个对象进行特定更改来优化现有应用程序,也可以在编程新应用程序时从一开始就进行优化设置。
该培训模块也是 PVICOM 接口(TM711、TM712)继续编程和使用 PVI OPC 服务器/配置器(TM730)的基础。
Fig. 24: PVI communication