拾贰[12],倍福库中文参考说明Tc2_System.lib-第1部分
1.ADS Errorcodes
1.1.E_AdsErr
这是倍福 TwinCAT 系统定义的标准 ADS 通信错误码集合,涵盖路由层、设备层、客户端层的各类错误,用于 ADS 通信功能块的错误处理与故障诊断。
| 序号 | 名称 | 类型 | 值 | 注释 |
|---|---|---|---|---|
| 1 | NOERR | UINT | 16#0 | 无错误 |
| 2 | ROUTER_NDLOCKEDMEMORY | UINT | 16#500 | 无法分配锁定内存 |
| 3 | ROUTER_RESIZEMEMORY | UINT | 16#501 | 路由内存大小无法更改 |
| 4 | ROUTER_MAILBOXFULL | UINT | 16#502 | 邮箱消息数已达上限 |
| 5 | ROUTER_DEBUGBOXFULL | UINT | 16#503 | 调试消息箱已满 |
| 6 | ROUTER_UNKNOWNPORTTYPE | UINT | 16#504 | 端口类型未知 |
| 7 | ROUTER_NOTINITIALIZED | UINT | 16#505 | 路由器未初始化 |
| 8 | ROUTER_PORTALREADYINUSE | UINT | 16#506 | 端口号已被占用 |
| 9 | ROUTER_NOTREGISTERED | UINT | 16#507 | 端口未注册 |
| 10 | ROUTER_NOMOREQUEUES | UINT | 16#508 | 已达最大端口数 |
| 11 | ROUTER_INVALIDPORT | UINT | 16#509 | 端口无效 |
| 12 | ROUTER_NOTACTIVATED | UINT | 16#50A | TwinCAT 路由器未激活 |
| 13 | ROUTER_FRAGMENTBOXFULL | UINT | 16#50B | 分段消息箱已满 |
| 14 | ROUTER_FRAGMENTTIMEOUT | UINT | 16#50C | 分段消息超时 |
| 15 | ROUTER_TOBEREMOVED | UINT | 16#50D | 设备将被移除 |
| 16 | DEVICE_ERROR | UINT | 16#700 | 设备错误类 |
| 17 | DEVICE_SRVNOTSUPP | UINT | 16#701 | 服务器不支持该服务 |
| 18 | DEVICE_INVALIDGRP | UINT | 16#702 | 无效的索引组 |
| 19 | DEVICE_INVALIDOFFSET | UINT | 16#703 | 无效的索引偏移 |
| 20 | DEVICE_INVALIDACCESS | UINT | 16#704 | 不允许读写操作 |
| 21 | DEVICE_INVALIDSIZE | UINT | 16#705 | 参数大小不正确 |
| 22 | DEVICE_INVALIDDATA | UINT | 16#706 | 无效的参数值 |
| 23 | DEVICE_NOTREADY | UINT | 16#707 | 设备未处于就绪状态 |
| 24 | DEVICE_BUSY | UINT | 16#708 | 设备正忙 |
| 25 | DEVICE_INVALIDCONTEXT | UINT | 16#709 | 无效上下文(必须在 Windows 环境) |
| 26 | DEVICE_NOMEMORY | UINT | 16#70A | 内存不足 |
| 27 | DEVICE_INVALIDPARAM | UINT | 16#70B | 无效的参数值 |
| 28 | DEVICE_NOTFOUND | UINT | 16#70C | 未找到(文件、变量等) |
| 29 | DEVICE_SYNTAX | UINT | 16#70D | 命令或文件中存在语法错误 |
| 30 | DEVICE_INCOMPATIBLE | UINT | 16#70E | 对象不兼容 |
| 31 | DEVICE_EXISTS | UINT | 16#70F | 对象已存在 |
| 32 | DEVICE_SYMBOLNOTFOUND | UINT | 16#710 | 符号未找到 |
| 33 | DEVICE_SYMBOLVERSIONINVALID | UINT | 16#711 | 符号版本无效 |
| 34 | DEVICE_INVALIDSTATE | UINT | 16#712 | 服务器处于无效状态 |
| 35 | DEVICE_TRANSMODENOTSUPP | UINT | 16#713 | 不支持指定的传输模式 |
| 36 | DEVICE_NOTIFYHANDLEINVALID | UINT | 16#714 | 通知句柄无效 |
| 37 | DEVICE_CLIENTUNKNOWN | UINT | 16#715 | 通知客户端未注册 |
| 38 | DEVICE_NOMOREHANDLE | UINT | 16#716 | 无更多通知句柄可用 |
| 39 | DEVICE_INVALIDWATCHSIZE | UINT | 16#717 | 监视数据大小过大 |
| 40 | DEVICE_NOTINIT | UINT | 16#718 | 设备未初始化 |
| 41 | DEVICE_TIMEOUT | UINT | 16#719 | 设备通信超时 |
| 42 | DEVICE_NOINTERFACE | UINT | 16#71A | 查询接口失败 |
| 43 | DEVICE_INVALIDINTERFACE | UINT | 16#71B | 需要错误的接口类型 |
| 44 | DEVICE_INVALIDCLSID | UINT | 16#71C | 类 ID 无效 |
| 45 | DEVICE_INVALIDOBJID | UINT | 16#71D | 对象 ID 无效 |
| 46 | DEVICE_PENDING | UINT | 16#71E | 请求正在处理中 |
| 47 | DEVICE_ABORTED | UINT | 16#71F | 请求被中止 |
| 48 | DEVICE_WARNING | UINT | 16#720 | 信号警告 |
| 49 | DEVICE_INVALIDARRAYIDX | UINT | 16#721 | 无效的数组索引 |
| 50 | DEVICE_SYMBOLNOTACTIVE | UINT | 16#722 | 符号未激活 → 释放句柄后重试 |
| 51 | DEVICE_ACCESSDENIED | UINT | 16#723 | 访问被拒绝 |
| 52 | DEVICE_LICENSENOTFOUND | UINT | 16#724 | 未找到许可证(0x724) |
| 53 | DEVICE_LICENSEEXPIRED | UINT | 16#725 | 许可证已过期 |
| 54 | DEVICE_LICENSEEXCEEDED | UINT | 16#726 | 许可证已超出使用限制 |
| 55 | DEVICE_LICENSEINVALID | UINT | 16#727 | 许可证无效 |
| 56 | DEVICE_LICENSESYSTEMID | UINT | 16#728 | 系统 ID 无效 |
| 57 | DEVICE_LICENSENOTIMELIMIT | UINT | 16#729 | 许可证无时间限制 |
| 58 | DEVICE_LICENSEFUTUREISSUE | UINT | 16#72A | 许可证发布时间在未来 |
| 59 | DEVICE_LICENSETIMETOOLONG | UINT | 16#72B | 许可证有效期过长 |
| 60 | DEVICE_EXCEPTION | UINT | 16#72C | 设备特定代码中发生异常 |
| 61 | DEVICE_LICENSEDUPLICATED | UINT | 16#72D | 许可证文件被重复读取 |
| 62 | CLIENT_ERROR | UINT | 16#740 | 客户端错误类 |
| 63 | CLIENT_INVALIDPARM | UINT | 16#741 | 服务调用中参数无效 |
| 64 | CLIENT_LISTEMPTY | UINT | 16#742 | 轮询列表为空 |
| 65 | CLIENT_VARUSED | UINT | 16#743 | 变量连接已被占用 |
| 66 | CLIENT_DUPLINVOKED | UINT | 16#744 | 调用 ID 重复 |
| 67 | CLIENT_SYNCTIMEOUT | UINT | 16#745 | 同步调用超时 |
| 68 | CLIENT_WIN32ERROR | UINT | 16#746 | Win32 子系统错误 |
| 69 | CLIENT_TIMEOUTINVALID | UINT | 16#747 | 客户端超时值无效 |
| 70 | CLIENT_PORTNOTOPEN | UINT | 16#748 | ADS 客户端端口未打开 |
| 71 | CLIENT_ADSMADDR | UINT | 16#749 | ADS 客户端地址错误 |
| 72 | CLIENT_SYNCINTERNAL | UINT | 16#750 | ADS 同步内部错误 |
| 73 | CLIENT_ADDHASH | UINT | 16#751 | 哈希表溢出 |
| 74 | CLIENT_REMOVEHASH | UINT | 16#752 | 哈希表中未找到键 |
| 75 | CLIENT_NOMORESYM | UINT | 16#753 | 缓存中无更多符号 |
| 76 | CLIENT_SYNCRESINVALID | UINT | 16#754 | 收到无效的响应 |
| 77 | CLIENT_SYNCPORTLOCKED | UINT | 16#755 | 同步端口已被锁定 |
1.2.E_HRESULTAdsErr
这是 ADS 错误码的 HRESULT 格式封装,每个成员对应E_AdsErr中的错误,便于在支持 HRESULT 的开发环境中使用。
| 序号 | 名称 | 类型 | 注释 |
|---|---|---|---|
| 1 | HRESULT_ADS_NOERROR | DINT | 无错误 |
| 2 | ERROR | DINT | 设备错误类(基于E_AdsErr.DEVICE_ERROR) |
| 3 | SRVNOTSUPP | DINT | 服务器不支持该服务 |
| 4 | INVALIDGRP | DINT | 无效的索引组 |
| 5 | INVALIDOFFSET | DINT | 无效的索引偏移 |
| 6 | INVALIDACCESS | DINT | 不允许读写操作 |
| 7 | INVALIDSIZE | DINT | 参数大小不正确 |
| 8 | INVALIDDATA | DINT | 无效的参数值 |
| 9 | NOTREADY | DINT | 设备未处于就绪状态 |
| 10 | BUSY | DINT | 设备正忙 |
| 11 | INVALIDCONTEXT | DINT | 无效上下文(必须在 Windows 环境) |
| 12 | NOMEMORY | DINT | 内存不足 |
| 13 | INVALIDPARAM | DINT | 无效的参数值 |
| 14 | NOTFOUND | DINT | 未找到(文件、变量等) |
| 15 | SYNTAX | DINT | 命令或文件中存在语法错误 |
| 16 | INCOMPATIBLE | DINT | 对象不兼容 |
| 17 | EXISTS | DINT | 对象已存在 |
| 18 | SYMBOLNOTFOUND | DINT | 符号未找到 |
| 19 | SYMBOLVERSIONINVALID | DINT | 符号版本无效 |
| 20 | INVALIDSTATE | DINT | 服务器处于无效状态 |
| 21 | TRANSMODNOTSUPP | DINT | 不支持指定的传输模式 |
| 22 | NOTIFYHANDLEINVALID | DINT | 通知句柄无效 |
| 23 | CLIENTUNKNOWN | DINT | 通知客户端未注册 |
| 24 | NOMOREHANDLE | DINT | 无更多通知句柄可用 |
| 25 | INVALIDWATCHSIZE | DINT | 监视数据大小过大 |
| 26 | NOTINIT | DINT | 设备未初始化 |
| 27 | TIMEOUT | DINT | 设备通信超时 |
| 28 | NOINTERFACE | DINT | 查询接口失败 |
| 29 | INVALIDINTERFACE | DINT | 需要错误的接口类型 |
| 30 | INVALIDCLSID | DINT | 类 ID 无效 |
| 31 | INVALIDOBJID | DINT | 对象 ID 无效 |
| 32 | PENDING | DINT | 请求正在处理中 |
| 33 | ABORTED | DINT | 请求被中止 |
| 34 | WARNING | DINT | 信号警告 |
| 35 | INVALIDARRAYIDX | DINT | 无效的数组索引 |
| 36 | SYMBOLNOTACTIVE | DINT | 符号未激活 → 释放句柄后重试 |
| 37 | ACCESSDENIED | DINT | 访问被拒绝 |
| 38 | LICENSENOTFOUND | DINT | 未找到许可证(0x724) |
| 39 | LICENSEEXPIRED | DINT | 许可证已过期 |
| 40 | LICENSEEXCEEDED | DINT | 许可证已超出使用限制 |
| 41 | LICENSEINVALID | DINT | 许可证无效 |
| 42 | LICENSESYSTEMID | DINT | 系统 ID 无效 |
| 43 | LICENSENOTIMELIMIT | DINT | 许可证无时间限制 |
| 44 | LICENSEFUTUREISSUE | DINT | 许可证发布时间在未来 |
| 45 | LICENSETIMETOOLONG | DINT | 许可证有效期过长 |
| 46 | EXCEPTION | DINT | 设备特定代码中发生异常 |
| 47 | LICENSEDUPLICATED | DINT | 许可证文件被重复读取 |
2.File IO Data Types
2.1.E_OpenPath
该枚举定义了 TwinCAT 文件操作时的目标路径类型,用于指定文件打开 / 创建的目录位置。
| 序号 | 名称 | 类型 | 值 | 注释 |
|---|---|---|---|---|
| 1 | PATH_GENERIC | UINT | 1 | 在指定 / 通用文件夹中搜索 / 打开 / 创建文件 |
| 2 | PATH_BOOTPRJ | UINT | 未指定 | 在 TwinCAT 引导项目文件夹中操作文件,并自动添加.wbp扩展名 |
| 3 | PATH_BOOTDATA | UINT | 未指定 | 保留供 |
