242

TwinCAT PLC 库: 系统 BC

概述

该库包含PLC控制器(BCxxxx控制器)访问系统功能的功能块。

要求

PLC控制器的新固件版本：

BC2000 版本 : B5 及更高

BC3100 版本 : BF 及更高

BC4000 版本 : B3 及更高

BC7300 版本 : B3 及更高

BC8x00 版本 : B2 及更高

BC9000 版本: B4 及更高

某些功能块具有虚拟输入参数( bDummy : BOOL )。编译器至少需要一个功能块输入参数。你可以将参数设为 TRUE 或者 FALSE。

库的内容:

功能块

名称 | 描述
GetSysInfo | 读取PLC控制器的系统信息
GetSysTick | 读取PLC控制器的内部系统时钟
PresetSysTick | 设置PLC控制器的内部系统时钟
GetFBusStatus | 读取PLC控制器的现场总线状态
GetTBusStatus | 读取端子模块总线状态
TrigTBusCycle | 触发端子模块总线状态
Reboot | 重置PLC控制器


106

功能块 GetSysInfo

“GetSysInfo”功能块允许读取与PLC控制器有关的系统信息。

功能块 GetSysInfo : WORD

VAR_INPUT

VAR_INPUT
    bDummy: BOOL(*功能块至少需要一个输入*)
END_VAR

系统信息由如下返回参数给出：

返回值 | 描述
Bit 0 set | 获取现场总线和端子模块总线状态信息。
Bit 1 set | 显示系统时钟(旧版本固件的控制器不支持此功能)。
Bit 2 set | PLC 周期看门狗监视器激活。
Bits 3- 15 | 保留位
开发环境 | 目标系统类型 | 所要包含的PLC库
TwinCAT v2.7.0 及以上 | BCxxxx (165) | PlcSystemBC.Lb6


GetSysTick

功能块 GetSysTick

“GetSysTick”功能块，可以读取内部系统时钟的值。 PLC控制器的系统时钟是一个以毫秒递增的32位计数器。当控制器断电或复位时，计数器被清零，但通过 PresetSysTick 功能块，可以设置一个特定的值。

功能块 GetSysTick : DWORD

VAR_INPUT

VAR_INPUT
    bDummy: BOOL(*功能块至少需要一个输入*)
END_VAR

开发环境 | 目标系统类型 | 所要包含的PLC库
TwinCAT v2.7.0 及以上 | BCxxxx (165) | PlcSystemBC.Lb6

65


197

功能块 PresetSysTick

“PresetSysTick”功能块，可以设置内部系统时钟的值。 PLC控制器的系统时钟是一个以毫秒递增的32位计数器。正常工作时，功能块返回系统时钟的新值。

功能块 PresetSysTick : DWORD

VAR_INPUT

VAR_INPUT
    iVAlue : DWORD;
END_VAR

iValue: 系统时钟的新值。

开发环境 | 目标系统类型 | 所要包含的PLC库
TwinCAT v2.7.0 及以上 | BCxxxx (165) | PlcSystemBC.Lb6


250

功能块 GetFBusStatus

PLC 控制器可以作为一个共享设备与现场总线连接。功能块"GetFBusStatus"可以检测现场总线的状态。

功能块 GetFBusStatus : WORD

VAR_INPUT

VAR_INPUT
    bDummy: BOOL(*功能块至少需要一个输入*)
END_VAR

现场总线状态由参数值返回如下：

控制器类型 | 值 | 描述
BC2000 | 0 | 现场总线 OK
 | Bit 0 set | 现场总线错误
 | Bits 1- 15 | 保留位
BC3100 | 0 | 现场总线 OK
 | Bit 0 set | 现场总线错误
 | Bits 1- 3 | 保留位
 | Bits 4- 5 | DP状态: 0: 从站在 WAIT-PRM 状态(与主站无连接) 1: 从站在 WAIT-CFG 状态(启动) 2: 从站在 DATA-EXCH 状态(OK)
 | Bits 6- 7 | WD状态: 0: 正在寻求波特率 1: 已找到波特率 2: 通信监视器激活
 | Bits 8- 11 | 波特率: 0: 12 Mbaud 1: 6 Mbaud 2: 3 Mbaud 3: 1.5 Mbaud 4: 500 kbaud 5: 187.5 kbaud 6: 93.75 kbaud 7: 45.45 kbaud 8: 19.2 kbaud 9: 9.6 kbaud
 | Bits 12- 15 | 保留位
BC9000 | Bit 0 set | AMS/ADS 通信错误
 | Bit 1 set | MODBUS/TCP 错误
 | Bits 2- 14 | 保留位
 | Bit 15 set | 无连接 (与现场总线无通信)

开发环境 | 目标系统类型 | 所要包含的PLC库
TwinCAT v2.7.0 及以上 | BCxxxx (165) | PlcSystemBC.Lb6


255

功能块 GetTBusStatus

功能块"GetTBusStatus"可以读取端子模块的状态。

功能块 GetTBusStatus : WORD

VAR_INPUT

VAR_INPUT
    bDummy: BOOL(*功能块至少需要一个输入*)
END_VAR

返回参数意义如下：

返回值 | 描述
Bit 0 set | 一般K总线错误
Bit 1 set | 一般配置错误
Bits 2- 3 | 保留位
Bit 4 set | PLC 周期时间监视
Bits 5- 15 | 保留位
开发环境 | 目标系统类型 | 所要包含的PLC库
TwinCAT v2.7.0 及以上 | BCxxxx (165) | PlcSystemBC.Lb6


0

功能块 TrigTBusCycle

“TrigTBusCycle”可用于从PLC任务触发一个额外的端子模块总线周期。

功能块 TrigTBusCycle : INT

VAR_INPUT

VAR_INPUT
    iProcessImage 	: UINT; (* 0-3 *)
END_VAR

iProcessImage: 过程映像个数。允许值：0-3。

错误代码由功能块的参数返回如下：

返回值 | 描述
0 | 无错误
1 | 端子模块总线错误
2 | 拒绝访问。端子模块是激活的。
3 | 过程映像未被初始化。
-2 | 无效的过程映像数。允许范围 0 - 3

开发环境 | 目标系统类型 | 所要包含的PLC库
TwinCAT v2.7.0 及以上 | BCxxxx (165) | PlcSystemBC.Lb6


Reboot

功能块 Reboot

功能块Reboot重置总线端子模块器控制器(BCxxxx)。

功能块 Reboot : WORD

VAR_INPUT

VAR_INPUT
    bDummy	: BOOL(*功能块至少需要一个输入*)
END_VAR

开发环境 | 目标系统类型 | 所要包含的PLC库
TwinCAT v2.7.0 及以上 | BCxxxx (165) | PlcSystemBC.Lb6

142