PNDriver用户编程接口说明之四

本文源自西门子的技术文档《IO-Base User Programming Interface for PN Driver》第4章的后半部分,主要描述了结构体类型,将作为PNDriver用户编程接口说明的第四篇笔记。

4.10 数据类型

在用户代码中#include<pniobase.h>后,就可以在应用程序程序中定义以下结构体类型的变量。

4.10.1 基本数据类型

4.10.2 PNIO_MODE_TYPE

控制器运行模式枚举 描述
PNIO_MODE_OFFLINE 停止
PNIO_MODE_CLEAR 初始化
PNIO_MODE_OPERATE 运行

4.10.3 PNIO_IO_TYPE

过程数据方向枚举 描述
PNIO_IO_IN input
PNIO_IO_OUT output
PNIO_IO_IN_OUT in and out
PNIO_IO_UNKNOWN ?

4.10.4 PNIO_ADDR_TYPE

PNIO地址类型枚举 描述
PNIO_ADDR_LOG 以一个整型表示的逻辑地址
PNIO_ADDR_GEO 以槽、子槽、索引表示地址

4.10.5 PNIO_ADDR

typedef struct {
    PNIO_ADDR_TYPE AddrType;
    PNIO_IO_TYPE IODataType;
    union {
        PNIO_UINT32 Addr;
        PNIO_UINT32 Reserved [5];
    } u;
} ATTR_PACKED PNIO_ADDR;
PNIO地址结构体成员 描述
AddrType IO数据地址类型
IODataType 过程数据类型
Addr 逻辑地址或者物理地址
Reserved 保留

4.10.6 PNIO_CBF

事件回调函数指针变量:
typedef void (*PNIO_CBF) (PNIO_CBE_PRM * pCbfPrm);

4.10.7 PNIO_ALARM_TYPE

报警事件类型枚举 描述
PNIO_ALARM_DIAGNOSTIC 通道报警出现或消失
PNIO_ALARM_PROCESS 过程变量报警,如温度过高
PNIO_ALARM_PULL 模块/子模块拔出
PNIO_ALARM_PLUG 模块/子模块插入
PNIO_ALARM_STATUS 模块状态变化
PNIO_ALARM_UPDATE 模块
PNIO_ALARM_REDUNDANCY 冗余AR切换
PNIO_ALARM_CONTROLLED_BY_SUPERVISOR IO监控报警
PNIO_ALARM_RELEASED_BY_SUPERVISOR 取消IO监控报警
PNIO_ALARM_PLUG_WRONG 插入错误模块
PNIO_ALARM_RETURN_OF_SUBMODULE
PNIO_ALARM_DIAGNOSTIC_DISAPPEARS 诊断消失
PNIO_ALARM_MCR_MISMATCH 多个CR有误
PNIO_ALARM_PORT_DATA_CHANGED 网络连接事件,如设备连接或掉线
PNIO_ALARM_SYNC_DATA_CHANGED 同步数据变化
PNIO_ALARM_ISOCHRONE_MODE_PROBLEM IRT模式出现问题
PNIO_ALARM_NETWORK_COMPONENT_PROBLEM 网络组件出现问题
PNIO_ALARM_TIME_DATA_CHANGED 时间同步变化
PNIO_ALARM_DFP_PROBLEM 动态组包操作
PNIO_ALARM_MULTIPLE_INTERFACE 诊断多个接口操作不一致
PNIO_ALARM_UPLOAD_AND_STORAGE 上传和存储
PNIO_ALARM_PULL_MODULE 一个模块已经拔出
PNIO_ALARM_DEV_FAILURE 已经和IO设备取消一个AR
PNIO_ALARM_RETURN 已经和IO设备建立一个AR

4.10.8 PNIO_BLOCK_HEADER

数据记录报文中包含的PNIO块的头部数据结构

结构体成员变量 描述
BlockType 块类型
BlockLength 块长度
BlockVersionHigh 版本高8位
BlockVersionHigh 版本高8位

4.10.9 PNIO_MAINTENANCE

维护数据结构体成员变量 描述
BlockHeader 数据块头
padd 0
padd1 0
MaintenanceStatus

4.10.10 PNIO_ALARM_DATA_DIAGNOSIS

报警诊断结构体成员变量 描述
ChannelNumber 通道号
ChannelProperties 通道属性
ChannelErrorType 通道错误类型

4.10.11 PNIO_ALARM_DATA_MAINTENANCE_DIAGNOSIS

报警维护结构体成员变量 描述
maintInfo 维护数据结构
UserStrucIdent
ChannelNumber 通道号
ChannelProperties 通道属性
ChannelErrorType 通道错误类型

4.10.12 PNIO_ALARM_DATA_EXT_DIAGNOSIS

结构体成员变量 描述
ChannelNumber 通道号
ChannelProperties 通道属性
ChannelErrorType 通道错误类型
ExtChannelErrorType 扩展类型
ExtChannelAddValue 扩展变量

4.10.13 PNIO_ALARM_DATA_MAINTENANCE_EXT_DIAGNOSIS

结构体成员变量 描述
maintInfo
UserStrucIdent
ChannelNumber 通道号
ChannelProperties 通道属性
ChannelErrorType 通道错误类型
ExtChannelErrorType 扩展类型
ExtChannelAddValue 扩展变量

4.10.14 PNIO_ALARM_INFO

报警信息结构体成员变量 描述
BlockType 块类型
BlockVersion 版本
API API
AlarmSpecifier
ModIdent 模块标识
SubIdent 子模块标识
UserStrucIdent
UserAlarmData 用户报警数据长度

4.10.15 PNIO_ALARM_TINFO

报警任务信息结构体成员变量 描述
DeviceFlag 故障状态位,0位表示APDU-Status故障,其他位保留
PnioVendorIdent 制造商标识
PnioDevIdent 设备标识
PnioDevInstance 设备实例标识

4.10.16 PNIO_ALARM_MOD_DIFF_BLOCK

报警DIFF模块结构体成员变量 描述
ModDiffBlockLength 模块信息长度
pModDiffBlock 设备包含的模块信息

4.10.17 PNIO_CTRL_ALARM_DATA

结构体成员变量 控制器报警数据描述
AlarmType 报警类型
AlarmPriority 版本
DeviceNum 设备号
SlotNum 槽号
SubslotNum 子槽号
LADDR 逻辑地址
PnioCompatModtype 插入或拔出模块提示
AlarmTinfo 报警任务信息
AlarmAinfo 报警信息
ModDiffBlock 模块不同信息

4.10.18 PNIO_CTRL_APPL_READY_DATA

结构体成员变量 描述
ModDiffBlock 当控制器与设备组态完成时,控制器得到提示可以交互IO数据

4.10.19 PNIO_CBE_TYPE

基于IO-Base接口的用户程序需要针对以下事件,编程回调函数以响应事件,事件及其响应机制。

事件类型枚举 描述
PNIO_CBE_MODE_IND 控制器运行模式切换
PNIO_CBE_ALARM_IND 有报警
PNIO_CBE_REC_READ_CONF 返回读记录数据结果
PNIO_CBE_REC_WRITE_CONF 返回写记录数据结果
PNIO_CBE_DEV_ACT_CONF 设备激活
PNIO_CBE_CP_STOP_REQ 停机请求
PNIO_CBE_CTRL_DIAG_CONF 诊断返回
PNIO_CBE_IFC_SET_ADDR_CONF 通信接口设置地址结果返回
PNIO_CBE_REMA_READ_CONF REMA数据读返回
PNIO_CBE_IOSYSTEM_RECONFIG IO系统重新配置
PNIO_CBE_IFC_REC_READ_CONF 返回读接口记录数据结果
PNIO_CBE_IFC_REC_WRITE_CONF 返回写接口记录数据结果
PNIO_CBE_IFC_ALARM_IND 通信接口有报警
PNIO_CBE_IFC_APPL_READY 通信接口参数化完成

4.10.20 PNIO_CBE_PRM

事件结构体类型将若干成员变量组合在一起

4.10.21 ExtPar

4.10.22 PNIO_DEV_ACT_TYPE

0表示设备失效,1表示设备激活

4.10.23 PNIO_IOXS

IO数据状态枚举,分为GOOD和BAD

4.10.24 PNIO_CTRL_DIAG

控制器诊断结构体成员变量 描述
DiagService 子模块地址
Reserved 保留
Addr 地址
ReqRef 诊断请求的唯一标识
Reserved 保留

4.10.25 PNIO_CTRL_DIAG_ENUM

控制器诊断枚举类型 描述
PNIO_CTRL_DIAG_RESERVED
PNIO_CTRL_DIAG_CONFIG_SUBMODULE_LIST
PNIO_CTRL_DIAG_DEVICE_STATE
PNIO_CTRL_DIAG_CONFIG_IOROUTER_PRESENT
PNIO_CTRL_DIAG_CONFIG_OUTPUT_SLICE_LIST
PNIO_CTRL_DIAG_CONFIG_NAME_ADDR_INFO
PNIO_CTRL_DIAG_GET_COMM_COUNTER_DATA
PNIO_CTRL_DIAG_GET_AND_RESET_COMM_COUNTER_DATA
PNIO_CTRL_DIAG_DEVICE_DIAGNOSTIC

4.10.26 PNIO_CTRL_DIAG_CONFIG_SUBMODULE

控制器诊断子模块结构体成员 描述
Address 子模块地址
DataType 数据类型
ComType 通信类型
API API
ReductionRatio 减速比
Phase 节拍
CycleTime 循环时间片
HwIdentifier 硬件标识
AddressValid 合法地址
StartNo 子模块插入的地址
ParentDeviceLADDR 合法地址
Slot 槽号
Subslot 子槽号
Reserved1 保留
Reserved2 保留

4.10.27 PNIO_CTRL_DIAG_CONFIG_NAME_ADDR_INFO_DATA

结构体成员变量 描述
name 模块名称
TypeOfStation 站类型
ip IP地址
mask 子网掩码
router 默认路由

4.10.28 PNIO_CTRL_DIAG_DEVICE_DIAGNOSTIC_DATA

结构体成员变量 描述
Mode 模式
Error 错误
Reason 故障原因
AdditionalInfo IO设备诊断详细信息

4.10.29 PNIO_DATA_TYPE

分RT和IRT数据

4.10.30 PNIO_COM_TYPE

枚举 描述
PNIO_COM_UNICAST 单播通信
PNIO_COM_DIRECT_DATA_EX

4.10.31 PNIO_CP_CBE_TYPE

事件枚举 描述
PNIO_CP_CBE_STARTOP_IND 开启等时实时数据
PNIO_CP_CBE_DEFAULT_IND 等时实时模式
PNIO_CP_CBE_STARTOP_CYCLEINFO_IND 等时实时周期通信模式

4.10.32 PNIO_CP_CBE_PRM

结构体成员变量 描述
CpType 网卡类型
CpIndex 多网卡选择索引
u 网卡事件结构体

4.10.33 PNIO_CP_CBF

通用PNIO回调函数指针

4.10.34 PNIO_CYCLE_INFO

周期数据参数结构体成员变量 描述
CycleCount 周期计数
ClockCount 时钟计数PCI设备号
CountSinceCycleStart 记录计数变化

4.10.35 PNIO_IOS_RECONFIG_MODE

重配置模式枚举 描述
PNIO_IOS_RECONFIG_MODE_DEACT 所有IO设备待激活
PNIO_IOS_RECONFIG_MODE_TAILOR 开始重配置IO系统

4.10.36 PNIO_CP_SELECT_TYPE

网卡选择枚举 描述
PCI 选择PCI地址
MAC 选择MAC地址

4.10.37 PNIO_MAC_ADDR_TYPE

6字节的数组表示MAC地址

4.10.38 PNIO_PCI_LOCATION_TYPE / PNIO_PCI_LOCATION_PTR_TYPE

结构体成员变量 描述
BusNr PCI总线号
DeviceNr PCI设备号
FunctionNr PCI功能号

4.10.39 PNIO_DEBUG_SETTINGS_TYPE / PNIO_DEBUG_SETTINGS_PTR_TYPE

4.10.40 PNIO_PNTRC_BUFFER_FULL

跟踪数据缓冲区溢出回调函数

4.10.41 PNIO_PNTRC_WRITE_TRACE_BUFFER

拷贝跟踪数据到用户缓冲区回调函数

4.10.42 PNIO_PNTRC_SET_TRACE_LEVEL_DONE

跟踪级别设置回调函数

4.10.43 PNIO_CP_ID_TYPE / PNIO_CP_ID_PTR_TYPE

结构体成员变量 描述
CpSelection 多网卡选择索引
PNIO_MAC_ADDR_TYPE 网卡MAC地址
PNIO_PCI_LOCATION_TYPE 网卡的PCI位置
Description 网卡描述字符串

4.10.44 PNIO_SET_IP_NOS_MODE_TYPE

IP与设备名设置开关枚举 描述
PNIO_SET_IP_MODE 可以设置设备IP
PNIO_SET_NOS_MOD 可以设置设备名

4.10.45 PNIO_IPv4

结构体成员变量 描述
IpAddress[4] IP地址
NetMask[4] 子网掩码
Gateway[4] 网关
Remanent 为TRUE时回调函数将存储IP相关参数

4.10.46 PNIO_NOS

结构体成员变量 描述
Nos 设备名称
Length 设备名长度
Remanent 为TRUE时回调函数将存储设备名参数

4.10.47 PNIO_MOD_STATE_ENUM

模块状态诊断枚举 描述
PNIO_MOD_STATE_NO_MODULE 所有模块拔出
PNIO_MOD_STATE_PROPER_MODULE 模块OK,但是子模块存在故障
PNIO_MOD_STATE_SUBTITUTED_MODULE 现有模块与要求的模块不一致

4.10.48 PNIO_SUB_STATE_ENUM

子模块状态诊断枚举 描述
PNIO_SUB_STATE_ADD_INFO_MASK
PNIO_SUB_STATE_ADD_INFO_NONE No additional information is available
PNIO_SUB_STATE_ADD_INFO_TAKEOVER_NOT_ALLOWED Takeover is not allowed
PNIO_SUB_STATE_ADD_INFO_MASK 屏蔽0-2位表示SubmoduleState.Advice
PNIO_SUB_STATE_ADVICE_NOT_AVAILABLE 屏蔽第3位
PNIO_SUB_STATE_ADVICE_AVAILABLE 建议信息
PNIO_SUB_STATE_MAINTENANCE_REQUIRED_MASK 屏蔽第4位表示SubmoduleState.MaintenanceRequired
PNIO_SUB_STATE_MAINTENANCE_NOT_REQUIRED No MaintenanceRequired information is available
PNIO_SUB_STATE_MAINTENANCE_DEMANDED_MASK 屏蔽5位表示SubmoduleState.MaintenanceDemanded
PNIO_SUB_STATE_MAINTENANCE_NOT_DEMANDED No MaintenanceDemanded information is available
PNIO_SUB_STATE_MAINTENANCE_DEMANDED MaintenanceDemanded information is available
PNIO_SUB_STATE_DIAG_INFO_MASK 屏蔽第6位 that represents SubmoduleState.DiagInfo
PNIO_SUB_STATE_DIAG_INFO_NOT_AVAILABLE No fault information is available
PNIO_SUB_STATE_DIAG_INFO_AVAILABLE Fault information is available
PNIO_SUB_STATE_AR_INFO_MASK 屏蔽7-10位表示SubmoduleState.ARInfo
PNIO_SUB_STATE_AR_INFO_OWNED AR拥有该子模块
PNIO_SUB_STATE_AR_INFO_APPL_READY_PENDING AR拥有该子模块,但AR锁住
PNIO_SUB_STATE_AR_INFO_LOCKED_SUPERORDINATED This AR It is blocked by superordinated means
PNIO_SUB_STATE_AR_INFO_LOCKED_IOCONTROLLER It is owned by another IOAR.
PNIO_SUB_STATE_AR_INFO_LOCKED_IOSUPERVISOR 子模块不属于该AR,属于别的IOSAR
PNIO_SUB_STATE_IDENT_MASK 屏蔽11-14位表示SubmoduleState.IdentInfo
PNIO_SUB_STATE_IDENT_OK 子模块OK
PNIO_SUB_STATE_IDENT_SUBSTITUTE Substitute submodule
PNIO_SUB_STATE_IDENT_WRONG Wrong submodule
PNIO_SUB_STATE_IDENT_NO_SUBMODULE

posted on 2025-06-16 08:58  MichaelChen-99  阅读(76)  评论(0)    收藏  举报

导航