1 驱动程序的功能(The Function of a Driver)P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
P.L.C.技.术.网——可编程控制器技术门户
驱动程序用于在某一设备内独立与控制器或监视设备通信。它允许CITECT运行系统直接与许多运WWW_PLCJS_COM-PLC-技.术_网
行同样应用程序的不同类型的设备进行通信。CITECT 产生请求访问I/O设备并把这些请求传送至驱动程序。——可——编——程——控-制-器-技——术——门——户
驱动程序通过与I/O设备通信来处理这些请求(使用其唯一的通信协议)。一旦通信建立起来,CITECT将WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
其数据格式转换成CITECT的通用形式。而后驱动程序把结果反馈给CITECT。WWW_P※LCJS_CO※M-PLC-技-.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
CITECT设备驱动程序的结构是极度灵活的。它容许一个单一驱动程序同时同几个通信板进行通信,WW.W_PLCJS_COM-PLC-技.术_网
每块集成板上可以有多个硬件端口,每个端口可以连接几个I/O设备。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
2 驱动程序控制模块(Driver Control Block)WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_PL※CJS_COM-PLC-技.术_网
驱动程序控制模块是一种在CITECT和设备驱动程序之间转换请求的数据结构。驱动程序将(1)请求排队,WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
(2)(当硬件有效时)处理请求, (3)把结果返回给CITECT。WWW_PLC※JS_COM-PmLC-技.术_网
WWW_P※LCJS_COM-PLC-)技.术_网
CITECT可同时将几个DCB(驱动程序控制块)传递给驱动程序,DCB(驱动程序控制块)的数量由驱动程序WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
决定。驱动程序将传递来的驱动程序控制块排在队列的尾部,驱动程序不断从队首取出DCB(驱动程序控制块)WWW_PLCJS@_COM%-PLC-技.术_网
进行处理,使驱动程序一直处于忙碌状态,以达到最高的执行效率。有些驱动程序可以对请求进行优化,合并WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
成一个请求,使数据可以缓存,仅在需要时才产生物理请求。WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
值得注意的是,许多命令的处理必须是异步的,这将允许CITECT在等待驱动程序响应时能够进行其它操作。——可——编——程——控-制-器-技——术——门——户
支持异步运算的各种命令在CITECT驱动程序开发手册中有详细的说明。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
DCB(驱动程序控制块)按以下方式往返传递:CITECT将含有命令和其他相关信息的DCB(驱动程序控制模WWW_PLCJS_COM-PLC-技.术_网
块)作为参数调用驱动程序,驱动程序便获得DCB(驱动程序控制块),驱动程序将DCB中的“InUseFlag”成员——可——编——程——控-制-器-技——术——门——户
变量的置为“真”。在此种状态下, CITECT不能修改该DCB控制块。当驱动程序完成DCB中命令的操作后,它将DCBP_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
控制块的“InUseFlag”成员变量重新设置为“假”,同时调用回调函数如果已经定义。W1WW_P4LCJS_COM-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
CITECT既可以设置‘InUseFlag’成员变量, 也可以附上一个回调函数以决定驱动程序在何时完成命令。WWW_PL※CJS_COM-PLC-技.术_网
同时,CITECT还具有watch dog 的功能, 由它负责检查DCB规定的命令执行是否的超时,超时时间一般为三十W1WW_P4LCJS_COM-PLC-技.术_网
秒,由WatchTime选项指定。如果CITECT检测出驱动程序在规定的时间内没有反应,它将取消DCB并产生一个硬WWcW_PLCJS_COM-PLC-技.术_网
件报警。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
数据点(Data Point):DATAPOINT数据结构定义了用于信息读、写的位置以及每次读、写过程中所需P.L.C.技.术.网——可编程控制器技术门户
要转换的字节数。数据结构中的数据由编译程序的定义数据库构成和具体的通讯协议构成。WWW_PL※CJS_COM-PLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
通道(Channel):对于CITECT组态软件中的每个端口,每个通道数据结构都被分配了内存单元。通道WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
数据结构含有与通道相关的所有数据。通道数据结构的第一部分是固定的,由CITECT设定这部分的内容,其他WWW_P※LCJS_CO※M-PLC-技-.术_网
情况下不能改变其内容。WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
一般情况下在驱动程序的指定部分增加需要与物理通道有关的数据,比较典型的数据包括timer(定时器)、WWW_P※LCJS_COM-PLC-)技.术_网
queue header(队列头)和communications buffer (通信缓冲区)。MaxUnit(最大单元)和UnitDataBase(单WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
元数据库)是所有CITECT驱动程序中的一个标准部分。这样便可以将通道和通道所处的单元建立连接。WWW_PLC※JS_COM-PmLC-技.术_网
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
3 基于请求的驱动程序(Request based drivers)WWW_P※LCJS_COM-PLC-)技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
Request handling(请求操作)将驱动程序划分为两种基本形式:基于请求的驱动程序和front-endP.L.C.技.术.网——可编程控制器技术门户
/back-end(前端、后端)驱动程序[2]。WWW.PLCJS.COM——可编程控制器技术门户
WWW.PLCJS.COM——可编程控制器技术门户
在基于请求的驱动程序中,来自CITECT的CTDCB请求使驱动程序直接对物理设备提出请求。当该设备做出——可——编——程——控-制-器-技——术——门——户
反应时,驱动程序会回复CITECT提出的请求。这是最常见的一种驱动程序形式,比前端/后端驱动程序简单些。WW.W_PLCJS_COM-PLC-技.术_网
大部分驱动程序是这样工作的。其工作原理见图一WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
前端/后端驱动程序有两部分组成Front end和Back-end。与基于请求的驱动程序不同的是Back-end无须接WWW_PLCJS@_COM%-PLC-技.术_网