BC3150 - Bus Terminal Controller for PROFIBUS-DP

BECKHOFF Fieldbus Components

Documentation for BC3150

Bus Terminal Controller for PROFIBUS-DP

Version: 1.1.0
Date: 2006-02-10


BC3150 - Documentation Issue Status

BECKHOFF BC3150:前言

文档版本说明

版本 | 注释
1.1.0 | 新增为满足UL需要的注释。
1.0.1
  • 修正章节 Creating a boot project
  • 一些小的例行修正（笔误，拼写错误等）
  • 提供英语版本
1.0.0 | 首次发行 (只提供德语版本)

固件 BC3150

如果要升级 firmware ，你需要一根串行线和KS2000配置软件或 firmware 升级程序。

固件 | 注释
0xB0 | 固件版本 0xB0

你可以在Bus Terminal Controller底部标注上到 固件和硬件版本（配送状态）。


The principle of the Bus Terminal

BECKHOFF 现场总线组件: 产品概述

总线端子原理


Technical Data - BCxx50

BECKHOFF 总线端子控制器：产品概述

技术数据 - BCxx50

技术数据 | BCxx5x
处理器 | 16位micro-controller
诊断LEDS | 2 x power supply, 2 x K-Bus
组态和编程软件 | TwinCAT PLC
现场总线接口 | BC3150 | BC5150 | BC5250 | BC8050 | BC8150
现场总线 | PROFIBUS DP | CANopen | DeviceNet | - Serial ADS - KS8000 Protocol - ModbusRTU - ModbusASCII | - Serial ADS - KS8000 Protocol - ModbusRTU - ModbusASCII
接口 |
串行接口 | COM1 (RS232 for configuration and programming, automatic baud rate detection 9600/19200/38400/57600 baud)
终端总线 (K-Bus) | 64 (255 with K-Bus extension)
技术数据 | BC3150 | BC5150 | BC5250 | BC8050 | BC8150
数字量外围信号 | 2040输入/输出
模拟量外围信号 | 1024输入/输出
配置 | 通过 TwinCAT 或 控制器
最大现场总线字节数 | 取决于现场总线
最大字节数-PLC | 2048 字节输入， 2048 字节输出
总线连接 | D-sub, 9-pin | Open Style Connector, 5 pin |  | D-sub, 9-pin | D-sub, 9-pin
电源 (Us) | 24 VDC (-15%/+20%) 为满足UL需要，使用一个4A的保险丝或供电电源满足 NEC class 2 的要求!
输入电流 (Us) | 60 mA + (total K-Bus current)/4
启动电流 | approx. 2.5 x continuous current
K-Bus 电流 (5 V) | 最大值 1000 mA
电源触点电压 (上限) | 最大值 24 VDC
电源触点电流负载 (上限) | 最大值 10 A
推荐电流 (Up) | £ 10 A
电介质强度 | 500 Vrms (power contact / supply voltage / fieldbus)
重量 | approx. 100 g
尺寸 (W x H x D) | approx. 44 mm x 100 mm x 68 mm
工作温度 | 0°C... +55°C
储存温度 | -25°C... +85°C
相对湿度 | 95 % 无冷凝
抗振/抗冲击性能 | conforms to EN 60068-2-6 / EN 60068-2-27, EN 60068-2-29
EMC的抗爆裂/静电放电 | conforms to EN 61000-6-2 / EN 61000-6-4
安装位置 | 任意
防护等级 | IP20


Technical Data - PROFIBUS DP

BECKHOFF BC3150: 产品概述

技术数据 - PROFIBUS DP

系统数据 | PROFIBUS (BC3150)
I/O模块数 | 126 (BC3150 max. 99 devices)
I/O点数 | 由控制器决定
数据传输媒介 | 铜电缆 2 x 0.25 mm²,符合EN 50170的A类电缆
模块间距离 | 最高可达 1200 m
中继次数 | 3
数据传输速率 | 最高可达 12 MBaud
拓扑结构 | 光纤圆环 RS485 line
传送时间 | 以12MBaud用10个32位的输入/输出时近似0.5ms


Technical Data - PLC

BECKHOFF 总线端子控制器：产品概述

技术数据 - PLC

PLC 数据 | BCxx5x
编程 | 通过编程或现场总线接口
程序内存 | 48 kbyte
源代码内存 | 128 kbyte
数据内存 | 32 kbyte
Remanent 数据 | 2 kbyte
PLC周期时间 | Approx. 3,0 ms for 1000 IL commands (without I/O cycle)
编程语言 | IEC 6-1131-3 (IL, LD, FBD, ST, SFC)
运行时间 | 1 PLC 指令
在线调试 | Yes
上传/下载代码 | Yes/Yes


Programming cable

BECKHOFF 总线端子控制器：安装与接线

编程电缆

总线端子控制器的串行编程使用的是KS2000-Z2编程电缆。 电缆包含KS2000软件订货号中，并且电缆也可以单独订货(订货号 KS2000-Z2)。

KS2000-Z2

编程电缆通过串行接口提供了BCxx50编程的可选方案。

警告 当编程电缆（BCxx50与PC之间）被连接时，总线端子控制器的接地端不可以中止或者断开， 这样可能造成编程电缆的损坏。


Start-up Behaviour of the Bus Terminal Controller

BECKHOFF Fieldbus Components: Parameterization and Commissioning

总线端子控制器启动特性

开机后，总线端子控制器确认其状态，配置K-bus， 创建关于基本总线端子的结构列表并启动本地PLC程序。
当总线耦合器启动时，I/O LED灯亮并闪烁。如果没有异常，I/O LED灯将在2-3 秒后停止闪烁。如果发生异常，根据LED灯的闪烁情况反映了相应的错误类型（详见诊断LED）。


Bus Terminal Controller - Creating a TwinCAT configuration

BECKHOFF 现场总线组件：参数与启动

创建 TwinCAT 配置

配置BCxx50，BCxx20或BXxx00系列的总线端子控制器，需要在System Manager中创建一个BX file。为了简化操作，基础文件已经准备好了。 在New from Template 中打开相应的BX Controller。

选择相应的 BX Controller.

所有 BX Controller 组件都可以使用

  • Fieldbus interface
  • K-Bus Interface
  • PLC Program
  • SSB (only BX-Controller)

请参考与设备配置相关的资料。


PROFIBUS Settings

BECKHOFF 现场总线组件: 参数与启动

PROFIBUS 设置

PROFIBUS 相关设置可以在 DP slaves栏中完成。

PROFIBUS 出错

PROFIBUS 出错的情况(e.g. PROFIBUS电缆被拔掉了), PROFIBUS主站的输出数据会被完整保留或者调至0（根据设定 ）。对 BX3100而言，输入数据将由 PROFIBUS总站传送到 BX3100。

DP 数据形式

PROFIBUS 数据可以以 Intel或 Motorola 形式进行传送。

检测 DP 配置数据

配置数据功能

  • 无需核对;
  • 检查数据长度是否正确
  • 检查数据长度和内容


Basic Device File (GSD)

BECKHOFF 现场总线组件: 参数与启动

基础设备文件(GSD)

所有PROFIBUS从站接口的现场设备都是通过GSDfile描述。BC3150是一个PROFIBUS DP从站。为了数据交换，主站配置工具需要嵌入GSD file。 每个输入输出数据的最大长度为128个字节。

下载 GSD file (德语):
下载 GSD file (英语):

GSD file 可以被分为以下几种数据类型：

变量 | 长度
Integer 8 | 1 byte
UnInteger 8 | 1 byte
Integer 16 | 2 bytes
UnInteger 16 | 2 bytes
Integer 32 | 4 bytes
UnInteger 32 | 4 bytes
Float 32 | 4 bytes

没有列出的数据类型，例如 BOOL变量，也可以通过长度来描述。因此，GSD file 包含了从1个字节到64个字的配置数据。


Variable Mapping - PROFIBUS DP

BECKHOFF 现场总线组件: 参数与启动

变量映射 - PROFIBUS DP

创建PROFIBUS数据.

图1:创建 PROFIBUS 数据

只有导入PLC程序时，才能连接其项目。在PLC Configuration下添加你的PLC程序。此时，PLC变量已经连接到总线变量。

注意 可允许的PROFIBUS数据最大值
(BX3100: 最大244字节输入和244字节输出)!
(BC3150: 最大128字节输入和128字节输出)!


Configuration - Siemens S7 Controller

安装图标

为了在Siemens软件中将每一个映像分配给设备，以下的图像必须复制到Step7\S7Data\ncbmp 目录下。

BC3150d.DIB

BC3150n.DIB

BC3150s.DIB

安装 GSD 文件

  • 在Step7 hardware 配置窗口 安装新的GSD文件。
  • 选择BECKHOFF GSD所在的目录，并且导入文件。
  • 你会在硬件目录Profibus DP\Other field devices\I/O下找到他们。


Configuration: Siemens S7 Controller with BX3100

BX3100 参数设置

图1: 设置

BX3100 模块配置

例 1

1 x BX3100

图2: 输入单个字节。注意：每一个单个的字节需要一个ConfigData字节。

图3:输入连续的字节


Measuring the PLC Cycle Time

BECKHOFF 总线端子控制器: 参数与启动

计算PLC周期时间

任务时间是在PLC Control中设置。默认设定为20ms。

默认设置下，PLC程序每20ms执行一次，一般程序实际执行的时间总是小于20ms的。可以在System Manager 中测量周期时间，从而确定您的系统负载。为了确保可靠运行，可以将任务时间设置的比测定的周期时间长 20 到30 % 。 精确的周期时间故障在 K-Bus tab 有所描述。


BCxx50 PLC features

BECKHOFF 总线端子控制器：编程

BCxx50 PLC 特征

说明 | 数值
数据内存 | 32 kbyte
程序内存 | 48 kbyte 包括 Task配置和POUs在线修改需要的内存
源代码内存 | 128 kbyte
RETAIN | 2 kbyte
输入 | 2 kbyte
输出 | 2 kbyte
FLAG | 4 kbyte
最大变量数 | 16 kbyte
Max. POUs | Limited by memory


TwinCAT PLC error codes

BECKHOFF 总线端子控制器: 编程

TwinCAT PLC 错误代码

错误类型 | 说明
PLC 编译错误 | Maximum number of POUs (...) exceeded
PLC 编译错误 | Out of global data memory ...

POUs错误

对于每个块均创建一个 POU (过程对象单元) 。默认可用256个块。

如果调用了库POU的数量就有可能超出。 在这种情况下，POUs的数量应该增加。

为此，请在PLC Control下Projects/Options中打开控制器设置。

在PLC Control中Projects/Options进行控制器设置。

这些设置不能在线更改。

全局内存错误

默认2 × 16 KB的数据可用。如果要使用大量的数据，这个范围内应该增加。对于BX，最大可有14个数据段。


Bus Terminal Controller - Remanent data

BECKHOFF Bus Terminal Controller: Programming

Remanent 数据

BX控制器有2000 Byte 的 remanent 数据可用。在PLC Control中这样声明：VAR RETAIN 。

例
VAR RETAIN
Test :BOOL;
Count :INT;
END_VAR

Retain 数据定义位置在 VAR RETAIN 和 END_VAR 之间。 这些数据会保存到 2kB大小的NOVRAM 中。RETAIN 在每次PLC循环后即存入NOVROM 中，对于2KB的数据需要任务时间为2ms（1KB为1ms）。这些变量可以定义为局部或全局变量，但指定为IO型的变量（%I...,%Q...,%M...）不能用作Retain数据。

注意 VAR_RETAIN 不能用做功能块。否则所有功能块数据会复制到retain 内存中，这样会增加很多不必要的PLC循环时间以及Retain内存占用。
注意 指定为IO地址(%I...,%Q.., %M...)的变量不能声明为 retain 型变量。

功能块中使用 remanent 数据的例子

由于在功能块中即使只使用一个 remanent 数据也会将功能块中所有数据做保存，所以应该避免这种情况。下面是这样的一个例子程序。

Function block Test (no program code required - in ST a semicolon is sufficient)

FUNCTION_BLOCK Test

VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
VAR_IN_OUT
Counter :INT;
END_VAR

MAIN program

PROGRAM MAIN

VAR
fb_Test:Test;
END_VAR
VAR RETAIN
iCounter1:INT;
END_VAR

fb_Test(Counter:=iCounter1);


Allocated flags

BECKHOFF Bus Terminal Controller: Programming

标记地址分配

有4k byte 的标记地址可以分配。它们可以对一个地址分配不同的变量类型，例如，可用作字符串转换为Byte型。这些数据也可以通过ADS功能进行读写。

注意 BX 控制器不能将标记地址变量再定义为 remanent 数据。

通过ADS读写标记地址变量

在PROFIBUS中可以通过ADS读写标记变量，我们可以使用DPV1的服务来实现。在CANopen中可以通过SDO通讯来实现。
AmsNetId 可以在System Manager中找到，或在BX控制器的液晶显示菜单里找到。
PLC port 号是 800.

Index group | Meaning | Index offset (value range)
0x4020 | Flag (only BXxxx0) | 0..4096
例子

BX program

VAR
Flag_01 AT %MB0: WORD;
END_VAR

TwinCAT PC/CX Master Programm

VAR
fbADRSREAD: ADSREAD;
Flag_M: WORD;
END_VAR

fbADRSREAD(
NETID:='172.16.3.0.2.3' ,  (* AMSNetId BX *)
PORT:=800 ,                (* 800 - PLC *)
IDXGRP:=16#4020 ,          (* 0x4020hex
flags *)
IDXOFFS:=0 ,               (* byte offset *)
LEN:=2 ,                   (* Lenght byte *)
DESTADDR:=ADR(Merker) ,
READ:=TRUE ,
TMOUT:=t#1s  );
IF NOT fbADRSREAD.BUSY THEN
fbADRSREAD(READ:=FALSE);
END_IF


Mapping of the Bus Terminals

BECKHOFF现场总线组件：组态

总线端子映射

对面向字节的总线端子进行映射的详细分配，可以在总线端子组态指南中找到。该文档也可在产品的 CD 上或下列的因特网上找到：http://www.beckhoff.com.

Byte oriented Bus Terminals | Bit oriented Bus Terminals
KL15x1 | KL10xx, KL11xx, KL12xx, KL17xx, KM1xxx
KL25xx | KL20xx, KL21xx, KL22xx, KL26xx, KL27xx, KM2xxx
KL3xxx |
KL4xxx |
KL5xxx |
KL6xxx |
KL7xxx |
KL8xxx |
 | KL9110, KL9160, KL9210, KL9260


Local process image in the TwinCAT configuration

BECKHOFF Bus Terminal Controller: Programming

TwinCAT配置中的本地进程映像

TwinCAT配置(TwinCAT CONFIG) 使得PROFIBUS / K-Bus / PLC变量之间可以自由映射。通过System Manager ，变量可以独立于它们的地址连接。

在TwinCAT 配置中， 所有的总线端子均有固定地址。如果插入一个总线端子，整个地址范围可能会改变。 许多数据是不必要的，占据了宝贵的地址内存空间。 TwinCAT 配置纠正了该缺点。 已分配的变量可以与一个总线端子自由连接。配置在System Manager中执行，然后配置被传输到BX(see TwinCAT configuration)中。


Communication between TwinCAT and Bus Terminal Controller

BECKHOFF 现场总线组件: 编程

TwinCAT和总线端子控制器之间通讯

为了在 TwinCAT和总线端子控制器之间传输数据，定义一个数据结构很有意义。以下是BX 和PC 系统对地址分配的差异说明。

  • 如果依次发送两个不同类型的数据（如 byte 和 INT），跟在后面的变量设置为下一个偶数的地址偏移
  • Bool表达式应该在byte或word中定义或字节。
Example 1: Structure on the BX and on the PC
Variable | BX memory | PC memory (TwinCAT)
Byte | %..B0 | %..B0
INT (1) | %..B2 | %..B1
INT (2) | %..B4 | %..B3

由于第一个Byte后面跟了一个不同类型（INT），这样它的地址自动被设为下一个偶数地址。 为了在两个系统上实现同样的数据结构，需要将一个虚拟字节插入PC项目中 (详见 example 2)。

Example 2: Structure on the BX and on the PC with identical memory allocation
Variable | BX memory | PC memory (TwinCAT)
Byte | %..B0 | %..B0
Byte (Dummy) | %..B1 (not necessarily required, since the system deals with this itself if the variable does not exist) | %..B1
INT (1) | %..B2 | %..B2
INT (2) | %..B4 | %..B4

数据结构

Type PB_Data
STRUCT
wVar_1:WORD;
iValue_1:INT;
iValue_2:INT;
iValue_3:INT;
END_STRUCT
END_TYPE

创建一个变量结构

VAR_Global
strData_Out AT %QB1000:PB_Data; (*PLC Variables *)
bInput_01 AT %IX0.0:BOOL; (* Input from a terminal *)
END_VAR

例程

strData_Out.wVar_1.0:=bInput_01;

注意 一种混合型数据结构不应包含任何实数。如果包含，在 BX/BCxx50中或在 TwinCAT 主站中高字和低字必须交换。 最好是使用一个实数的数组或单独传输实数。
注意 由于变量结构中包含一些虚拟字节或位，会增加现场总线数据传输量。缺点是这些虚拟字节或位会使现场总线通讯负荷增加。


Libraries Overview

BECKHOFF 现场总线组件: 编程

库概述

TwinCAT 自动化软件为BCxx50系列总线端子控制器提供了不同类型的库 (拥有PLC功能的总线耦合器) (see BECKHOFF information system).

下载

这些库也包含在这个文档。左击磁盘图标，并将该库复制到目录TwinCAT\ PLC\LIB下，用于提取。
  • Standard
  • TcSystemBCxx50 [image] TcSystemBCxx50 requires the TcBaseBCxx50 library.
  • TcBaseBCxx50
  • ChrAscBX.lbx
Note

始终使用最新的库和最新的BC固件。如果你要升级你的总线端子控制器，请同时升级库。将新的库复制在LIB文件夹中，从项目中删除并重新插入它们。

TcSystemBCxx50

ADS | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
ADSREAD |  | B0 | B0 | B1 | B0 | -
ADSWRITE |  | B0 | B0 | B1 | B0 | -
ADSRDWRT |  | B0 | B0 | B1 | B0 | -
ADSWRTCTL |  | B0 | B0 | B1 | B0 | -
ADSRDSTATE |  | B0 | B0 | B1 | B0 | -
ADSRDDEVINFO |  | B0 | B0 | B1 | B0 | -
Bit Functions | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
CLEARBIT32 |  | B0 | B0 | B1 | B0 | -
CSETBIT32 |  | B0 | B0 | B1 | B0 | -
GETBIT32 |  | B0 | B0 | B1 | B0 | -
SETBIT32 |  | B0 | B0 | B1 | B0 | -
Controller | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
FB_BasicPID | - | B0 | B0 | B1 | B0 | -
- | - | - | - | - | - | -
File Access | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
FB_ReadFromFile |  | - | - | - | - | -
FB_WriteToFile |  | - | - | - | - | -
FB_ReadWriteFile |  | - | - | - | - | -
Memory Functions | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
MEMCMP |  | B0 | B0 | B1 | B0 | -
MEMCYP |  | B0 | B0 | B1 | B0 | -
MEMMOVE |  | B0 | B0 | B1 | B0 | -
MEMSET |  | B0 | B0 | B1 | B0 | -
NOVRAM Functions | Version | Firmware
 |  | BX3100 | BX5100 | BX5200 | BX8000 | -
- | - | - | - | - | - | -
SFC | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
AnalyzeExpression |  | - | - | - | - | -
AppendErrorString |  | - | - | - | - | -
SFCActionControl |  | - | - | - | - | -
System / Time / TBus | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
DRAND |  | B0 | B0 | B1 | B0 | -
SYSTEMTIME_TO_DT |  | B0 | B0 | B1 | B0 | -
DT_TO_SYSTEMTIME |  | B0 | B0 | B1 | B0 | -
GetSysTick |  | B0 | B0 | B1 | B0 | -
PresetSysTick |  | B0 | B0 | B1 | B0 | -
Reboot |  | B0 | B0 | B1 | B0 | -
Debug | Version | Firmware
 |  | BC3150 | BC5150 | BC5250 | BC8150 | -
F_ReadDebugTimer |  |  |  |  |  | -
F_StartDebugTimer |  |  |  |  |  | -


Libraries - System Task Info

BECKHOFF 现场总线组件: 编程

System Task Info

VAR_GLOBAL
    SystemTaskInfo 	:  SYSTEMTASKINFOTYPE;
END_VAR
系统标识是隐性声明变量。利用输入助手，在系统变量中找到一个变量SystemTaskInfoArr 。这个变量是一个拥有四个SYTEMTASKINFOTYPE结构类型 。 该结构定义可以在系统库中找到。 index是在 field 的任务ID 。
Development environment | Target system type | PLC libraries to be linked
TwinCAT v2.9.0 | BCxx50 Controller | TcBaseBCxx50.lbx


Libraries - System Task Info Type

BECKHOFF 现场总线组件: 编程

System task info type

TYPE SYSTEMTASKINFOTYPE
STRUCT
    active			:	BOOL;
    taskName			:	STRING(16);
    firstCycle		:	BOOL;
    cycleTimeExceeded		:	BOOL;
    cycleTime			:	UDINT;
    lastExecTime		:	UDINT;
    priority			:	BYTE;
    cycleCount		: 	UDINT;
END_STRUCT
END_TYPE
Key
触发: 该变量表示任务是否处于触发状态.
任务名:任务名称.
第一周期: 在第一个PLC任务周期下，变量值为TRUE.
超时周期: 该变量表示设置的任务周期时间是否超出.
周期时间 : 设置的任务周期时间为100ns的倍数.
最后Exec时间: 最后一个循环所需的周期时间，为100 ns的倍数.
优先级: 设置任务优先级.
周期数t: 周期计数器.
Development environment | Target system type | PLC libraries to be linked
TwinCAT v2.9.0 | BCxx50 Controller | TcBaseBCxx50.lbx


Libraries - System Info

BECKHOFF 现场总线组件: 编程

System Info

VAR_GLOBAL
    SystemInfo     : SYSTEMINFOTYPE;
END_VAR

系统标识是隐性声明变量。利用输入助手，在系统变量中找到一个变量SystemTaskInfoArr 。这个变量是一个拥有四个SYTEMTASKINFOTYPE结构类型 。 该结构定义可以在系统库中找到。 为了访问该变量， 系统库必须要导入到工程中。

Development environment | Target system type | PLC libraries to be linked
TwinCAT v2.9.0 | BCxx50 Controller | TcBaseBCxx50.lbx


Libraries - System Info Type

BECKHOFF Bus Terminal Controller: Programming

System Info Type

TYPE SYSTEMINFOTYPE
STRUCT
    runTimeNo		:	BYTE;
    projectName		:	STRING(32);
    numberOfTasks		:	BYTE;
    onlineChangeCount		:	UINT;
    bootDataFlags		:	BYTE;
    systemStateFlags		:	WORD;
END_STRUCT
END_TYPE
Key

runTimeNo: 指定runtime system 的个数(1).
项目名称: 项目名称为STRING类型.
任务数: 在runtime system中包含的任务数 (max. 1).
在线更改计数: 从最后一次完全下载开始，在线更改的次数.
boot Data Flags: 保留
system State Flags: 保留

Development environment | Target system type | PLC libraries to be linked
TwinCAT v2.9.0 | BCxx50 Controller | TcBaseBCxx50.lbx


Local ADS Port Numbers

Port number | Description
100 dec | 在耦合器和复杂的总线耦合器中寄存器和表格的读取和写入
801 dec | 本地PLC过程映像


Bus Terminal Controller - ADS Services

BECKHOFF 现场总线组件: 编程

ADS 服务

本地进程映像PLC 任务1 端口800/801

数据可以从本地进程映像中读取，也可以写入本地进程映像。如果有必要写入输出，必须确保它们没有被本地PLC使用，因为本地控制器将覆盖这些值。该数据与看门狗无关，不建议用于控制输出，因为出错后输出会关闭。

Index group | Meaning | Index offset (value range)
0xF020 | 输入 | 0...2047
0xF030 | 输出 | 0...2047
0x4020 | 标识 | 0...4095

ADS services

AdsServerAdsState
Data type (read only) | Meaning
String | Start - 本地PLC运行 Stop - 本地PLC停止
AdsServerDeviceState
Data type (read only) | Meaning
INT | 0: Start - 本地PLC运行 1: Stop - 本地PLC停止
AdsServerType
Data type (read only) | Meaning
String | BX PLC Server

Register port 100

总线端子控制器中用于寄存器通信的ADS接口的数量固定的，设为100.

Index group | Index offset (value range) |  | Meaning
 | Hi-Word | Low Word
0 [READ ONLY] | 0...127 | 0...255 | 总线耦合器中的寄存器 高字节，总线耦合器的表编号 低字节，表的寄存器编号
1...255 | 0...3 | 1...255 | 总线端子寄存器 High word, 通道数 Low word, 总线端子寄存器的数量

Note 注意：读取寄存器时，ADS块超时时间的设置需要大于1秒。
Note 注意：写入寄存器时，需要设置密码 (见特殊总线端子文档).


BX Debug Function - Overview

这些功能可用于测量一个PLC项目命令的执行时间。单位是tick。一个tick相当于5.12微秒。

Start Debug Timer function

调用此函数启动定时器。返回值是“0“。

Read Debug Timer function

这个函数读取定时器的值。返回值必须乘以5.12微秒。

Example

VAR
Timer_BX :WORD;
i :INT;
END_VAR

Program

F_STARTDEBUGTIMER();
For i:=0 to 1000 do
;
END_FOR
Timer_BX:=F_READDEBUGTIMER();


Bus Terminal Controller - Programming via Serial Interface

BECKHOFF 总线端子控制器: 编程

通过串行接口编程

每个总线端子控制器都可通过PC的RS232接口来编程。

在 TwinCAT PLC Control中选择串行接口。

串行接口设置, 串口号, 波特率等. 均可在 PLC Control的Online/Communication parameters中找到。总线端子控制器需要设置如下:

  • 波特率: 9600/19200/38400/57600 baud (自动波特率检测)
  • 停止位: 1
  • 校验位: 偶校验

通过串行接口和ADS编程

总线端子控制器可通过PC的 RS232接口来编程。在它可用之前，TwinCAT必须先识别出该总线端子控制器(see serial ADS)。

在TwinCAT PLC Control中选择ADS连接。

PLC Control可以通过通过 Online/Communication Parameters....来访问


Diagnostics

BECKHOFF Fieldbus Components: Error handling and diagnosis

诊断

以太网状态

在许多情况下，了解与更高级别主站通讯的好坏非常重要。为此，将现场总线状态变量与你的PLC程序连接起来。

图. 在System Manager中PROFIBUS诊断字节

Error number | Description | Remedy
0 | No error | -
129 | Waiting for configuration data | Start PROFIBUS
130 | Waiting for parameter data | Start PROFIBUS
131 | No master available | Check PROFIBUS cables and connectors
例如
如果PROFIBUS被终止，例如因为电缆被拔掉或PLC已关机，该BX3100/BC3150会在DP状态下显示130。这意味着BX3100/BC3150在等待主站的参数数据。
在超时或者主站开始启动后从站启动顺序如下：
参数数据 - 配置数据 - 数据交换

通过ADS读取现场总线状态

现场总线状态可以通过默认配置下ADSREAD或在TwinCAT组态中读取。

Parameter ADSREAD function block | description
NetID | local - empty string
Port | 1
IndexGroup | 16#0006
IndexOffset | BX3100: 16#000C_A0F4 BC3150: 16#000C_A080
LEN | 1

K-Bus状态

一个内部总线或总线端子错误可以在K-Bus状态中显示出。更精确的故障描述可通过功能块（编制中）获得。为此，将K-Bus状态变量与你的PLC程序连接起来。

Error bit | Description | Error type
0 | No error | No ERROR.
Bit 0 | K-Bus error | ERROR
Bit 2 | K-Bus is re-triggered | NOTE

通过ADS 读取K-Bus状态

在默认或TwinCAT 配置中，现场总线状态可以通过ADSREAD.读取。

Parameter ADSREAD function block | Description
NetID | local - empty string
Port | 1
IndexGroup | 16#0006
IndexOffset | 16#000C_9000
LEN | 1


Standards for device testing

BECKHOFF Fieldbus Components: Appendix

设备测试标准

EMV

EMC resistance burst

EN 61000-6-2

ESD

EN 61000-6-4

耐振动/冲击

Vibration resistance

EN 60068-2-6

Shock resistance

EN 60068-2-27, EN 60068-2-29


Bibliography

German books

PROFIBUS

  • PROFIBUS-DP/DPV1
    Grundlagen, Tipps und Tricks für Anwender (Principles, Tips for Users)
    by Manfred Popp
    ISBN: 3778527819

General fieldbus technology

  • Gerhard Gruhler (Pub.): Feldbusse und Geräte-Kommunikationssysteme (Fieldbus and Device Communication Systems)
    Praktisches Know-How mit Vergleichsmöglichkeiten (Practical Know-how with Comparative Resources)
    Franzis Verlag, 2001
    244 pages
    ISBN 3-7723-5745-8

English books

(in preparation)

PROFIBUS-DP standards

  • IEC 61158 and IEC 61784
  • DIN 19245, Part 3
  • Euronorm EN 50 170

Web sites

  • http://www.profibus.com


not implemented

BECKHOFF Fieldbus Components

The SSB (Smart System Bus) is only implemented on BX Controllers.