1、产品概述
本网关是一种将Profibus总线和CAN总线桥接的设备。使用CAN通讯协议的设备(如:仪表、传感器等)可通过本网关和Profibus总线上的主站设备(如:西门子S7-300/400,ABB-800)进行数据交换。网关在Profibus总线上工作在从站模式。
CAN总线的报文收发支持基本模式和高级模式两种。基本模式支持灵活的CAN报文收发,CAN报文的ID符、帧类型、数据长度、数据等均可在线编程,通过PLC编程能够实现各种CAN低级和高级协议报文的收发功能,但PLC编程工作量较大。高级模式则是在组态软件中配置CAN报文的ID符、帧类型、数据长度等,PLC在运行时只需要读取或写入CAN报文帧的数据即可,可方便实现一对多的CAN网络通信。两种模式在网关组态时使用不同的GSD文件。
图1-1 PCTG-8014 应用模式
1.1、产品特点
◆ 使用32-Bit Micro-controller,频率可达80MHz。
◆ 使用Profichip公司的Profibus VPC3+C专用芯片。
◆ 支持Profibus DP-V0 slave。
◆ Profibus传输速率自动识别。
◆ Profibus传输速率最高支持12M bps,CAN传输速率最高支持1Mbps。
◆ CAN支持2.0A和2.0B版本。
◆ CAN报文的发送可采用定时发送和手动触发发送两种模式。
◆ CAN支持常用标准波特率。
◆ Profibus输入输出数据长度可自由设定,最大输出/输入数据长度为 244/244 Bytes。
◆ Profibus和CAN接口采用2500Vrms磁耦合隔离电路。
◆ Profibus、CAN、电源三端电气隔离,均具备抗600W雷电、浪涌能力。
◆ 电源输入范围宽,并具备反接、过压、过流、过热保护功能。
◆ 具备LED 状态指示灯,方便用户查看状态。
◆ 内置独立看门狗,增强设备抗干扰能力。
◆ 采用35mm导轨(DIN Rail)安装方式。
1.2、技术指标
1.2.1 CAN接口
◆ 波特率支持2K、3K、5K、10k、20k、30k、40k、50k、60k、75k、80k、90k、100k、120k、125k、144k、150k、160k、200k、225k、250k、300k、400k、500k、600k、666k、800k、900k、1Mbps。
◆ CAN收发器具备离线自动恢复功能。
1.2.2 Profibus接口
◆ 物理接头为DB9座孔,可直接连接DP总线连接器。
◆ Profibus数据输入、输出字节可设定。最大输入244字节,最大输出244字节,最大输入+输出488字节。
◆ 传输速率支持9.6K、19.2K、45.45K、93.75K、187.5K、500K、1.5M、3M、 6M、12Mbps。
◆ Profibus 从站地址设置范围0~126。
1.2.3 电源接口
◆ 物理接口为5.08mm间距3P端子。
◆ 输入电压范围DC7~36V。
◆ 具备反接、过压、过流、过热保护功能。
◆ 功率消耗1.1W。
1.2.4 环境指标
◆ 工作温度-40~85度。
◆ 工作湿度5%~95%(25℃时),无凝结。
1.2.5 外形尺寸:112*70*40mm。
1.2.6 安装方式:35mm DIN导轨。
1.2.7 重量:约110g。
2、硬件描述
2.1、原理框图
图2-1 PCTG-8014原理框图
2.2、接口说明
图2-2 PCTG-8014接口图
表2-1 PCTG-8014接口定义
2.3、通信连接
2.3.1、Profibus接口
图2-3 PCTG-8014 Profibus接口连接
建议网关在连接Profibus总线时使用标准DP总线连接器和线缆。如果网关为Profibus网络的最末端站点,需将其总线连接器的终端电阻开关拨到“ON”的位置。
2.3.2、CAN接口
网关在CAN接口电路中已经内置120欧姆终端电阻,但出厂时并未接入。如需在网关的CAN接口中接入终端电阻,请将CAN接口的“1”脚和“2”脚短接,“4”脚和“3”脚短接。
2.4、Profibus从站地址设定
Profibus从站地址需通过面板上两个10进制的旋转编码开关设置,一个代表十位,一个代表个位,这两个开关可设定0~99地址。在设置100~126地址时,用机壳背面的4位拨码开关和面板上两个旋转编码开关组合设置。4位拨码开关的第1位用来表示地址的百位,当拨码开关的第1位在ON的位置时,地址的百位为1,即可设置100~126的地址;当其在OFF的位置时,地址的百位为0。当三个开关的设置得到的是大于126的地址时,则认为百位无效,地址只取两个旋转编码开关的地址值。Profibus的从站地址设置通过表格说明如下
4位拨码开关第1位 | X10旋转编码开关 | X1旋转编码开关 | Profibus从站地址 |
OFF | 0 | 0 | 0 |
OFF | 0 | 9 | 9 |
OFF | 9 | 0 | 90 |
ON | 1 | 9 | 119 |
ON | 2 | 6 | 126 |
ON | 2 | 7 | 27 |
ON | 9 | 9 | 99 |
表2-2 Profibus从站地址设置举例
2.5、LED状态指示灯
指示灯 | 指示灯状态 | 含义 |
PW | 常亮 | 设备工作正常 |
熄灭 | 设备启动失败或未接入电源 | |
PB | 常亮 | Profibus总线连接正常 |
熄灭或闪烁 | Profibus总线连接失败或掉线 | |
CAN | 常亮或闪烁 | CAN通讯有错误 |
熄灭 | CAN通讯正常 | |
RX | 熄灭 | 无数据从CAN总线接收 |
常亮或闪烁 | 正在从CAN总线接收数据 | |
TX | 熄灭 | 无数据发送到CAN总线 |
常亮或闪烁 | 正在向CAN总线发送数据 |
表2-3 LED状态及含义
3、GSD文件及网关配置
Profibus系统以 GSD 文件方式提供设备的功能参数 (如 I/O点数配置、系統参数配置、诊断信息、baud rate 和工作模式等)。本网关的GSD文件随产品光盘提供,提供“DP-CANA.GSD”和“DP-CANB.GSD”两个GSD文件,基本模式使用“DP-CANA.GSD”进行组态,高级模式使用“DP-CANB.GSD”进行组态。
3.1、GSD文件的导入
如果第一次使用网关,需要将网关的GSD文件导入到Step7软件中,导入的方法和步骤如下
(1)在Step7工程中打开硬件组态窗口,然后单击执行“选项→安装GSD文件”菜单
图3-1 安装GSD文件
(2)在弹出的对话框中选择GSD文件所在的目录,会自动显示该目录中所有的GSD文件
3-2 GSD文件目录
(3)选择要安装的GSD文件,单击“安装”按钮,根据提示操作。安装成功后网关即出现在Step7的设备列表中。
图3-3 导入GSD文件
3.2、网关基本模式下专用参数和模块的配置说明
3.2.1、网关专用参数配置
双击Step7组态界面Profibus总线上的网关从站图标,弹出如下的网关参数配置窗口
图3-4 网关基本模式专用参数配置
(1)Baud
此参数配置CAN的通讯波特率。支持的波特率有2K、3K、5K、10k、20k、30k、40k、50k、60k、75k、80k、90k、100k、120k、125k、144k、150k、160k、200k、225k、250k、300k、400k、500k、600k、666k、800k、900k、1Mbps。
(2)FilterID和FilterMaskID
这两个参数相互配合,可以得到一个或一组需要接收的CAN报文ID,其它ID的报文将会被硬件过滤掉不会被接收。这两个参数默认值为0,即接收所有报文,不过滤任何报文。
FilterID位 | 位31:24 | 位23:16 | 位15:8 | 位7:0 | ||||
FilterMaskID位 | 位31:24 | 位23:16 | 位15:8 | 位7:0 | ||||
映像 | STID[10:3] | STID[2:0] | EXID[17:13] | EXID[12:5] | EXID[4:0] | IDE | RTR | 0 |
当“FilterMaskID”的某位为1时,接收到的CAN报文ID和“FilterID”的相应位必须相同才会接收,否则将自动丢弃。下面举例说明。
例1:
假如:
只接收ID为0x317的标准数据帧
0x317二进制表示为 011 0001 0111
那么:
将“FilterID”和“FilterMaskID”进行如下设置
FilterID : | 0110 | 0010 | 111X | XXXX | XXXX | XXXX | XXXX | X00X |
FilterMaskID : | 1111 | 1111 | 1110 | 0000 | 0000 | 0000 | 0000 | 0110 |
“FilterID”中前面11个红色的二进制位就代表我们要接收的帧ID 0x317,后面两个红色的二进制位00,第1个0代表是标准格式帧(标准格式帧的ID是11位,所以前面表示ID的红色是11个二进制位),第2个0代表是数据帧。“FilterMaskID”里面的1表示接收的报文ID相应位必须与“FilterID”相同,0表示可以相同也可以不同。
FilterID中的X表示为0和1都可以,为了计算方便我们一般将其设置成0。如下所示:
FilterID : | 0110 | 0010 | 1110 | 0000 | 0000 | 0000 | 0000 | 0000 |
FilterMaskID : | 1111 | 1111 | 1110 | 0000 | 0000 | 0000 | 0000 | 0110 |
用16进制表示为:
FilterID : | 0x62E00000 |
FilterMaskID : | 0xFFE00006 |
由于参数配置对话框中只能输入10进制数,把“FilterID”和“FilterMaskID”转换10进制数为:
FilterID = 1658847232
FilterMaskID = 4292870150
将上面两个10进制数填入参数对话框中,即可实现只接收ID为0x317的标准数据帧。
例2:
假如:
只接收ID为0x310到0x317的标准数据帧
0x310二进制表示为 011 0001 0000
0x317二进制表示为 011 0001 0111
那么:
将“FilterID”和“FilterMaskID”可以进行如下设置
FilterID : | 0110 | 0001 | XXXX | XXXX | XXXX | XXXX | XXXX | X00X |
FilterMaskID : | 1111 | 1111 | 0000 | 0000 | 0000 | 0000 | 0000 | 0110 |
“FilterID”中前面11个红色的二进制位代表要接收的帧ID ,其中的xxx代表000到111的任意组合。后面“X00X”中两个红色的二进制位“00”,第1个0代表是标准格式帧(标准格式帧的ID是11位,所以前面表示ID的红色是11个二进制位),第2个0代表是数据帧。“FilterMaskID”里面的1表示接收的报文ID相应位必须与“FilterID”相同,0表示可以相同也可以不同。
FilterID中的X表示为0和1都可以,为了计算方便一般将其设置成0。如下所示:
FilterID : | 0110 | 0001 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 |
FilterMaskID : | 1111 | 1111 | 0000 | 0000 | 0000 | 0000 | 0000 | 0110 |
用16进制表示为:
FilterID : 0x62000000
FilterMaskID : 0xFF000006
由于参数配置对话框中只能输入10进制数,我们把“FilterID”和“FilterMaskID”转换10进制数:
FilterID = 1644167168
FilterMaskID = 1644167168
将上面两个10进制数填入参数对话框,即可实现只接收ID为0x310到0x317的标准数据帧。
例3:
假如:
想接收ID为0x00000000到0x1FFFFFFF的扩展数据帧
0x00000000二进制表示为 0 0000 0000 0000 0000 0000 0000 0000
0x1FFFFFFF二进制表示为 1 1111 1111 1111 1111 1111 1111 1111
那么:
将“FilterID”和“FilterMaskID“进行如下设置
FilterID : | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | X10X |
FilterMaskID : | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0110 |
按照前面的例子,“x”用“0”代替,如下:
FilterID : | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0100 |
FilterMaskID : | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0110 |
用16进制表示为:
FilterID : 0x00000004
FilterMaskID : 0x00000006
由于参数配置对话框中只能输入10进制数,把“FilterID”和“FilterMaskID”转换成10进制数:
FilterID = 4
FilterMaskID = 6
将上面两个10进制数填入参数对话框,即可实现接收ID为0x00000000到0x1FFFFFFF的扩展数据帧。
(3)Interval(ms)
此参数配置定时发送CAN报文时的间隔时间。取值范围为1-30000,单位是毫秒,即支持的间隔时间从1毫秒到30秒。此参数需根据发送报文的长度和波特率来调整。
3.2.2、设备模块参数配置
设备模块配置可选择Profibus数据输入输出交换区的模块数量和大小,可配置输入输出模块的内容和特性。下面介绍的模块都为预置模块,在Step7中会自动添加,不需要用户手动操作。
3.2.2.1、状态字和控制字模块(Status/Command(1 Byte In/Out))
本模块没有配置参数。状态字模块占用1个字节的Profibus输入数据区,其用来输出设备当前的工作状态,状态字节内容如下表
D7-D1 | D0 |
保留位 | CAN离线状态标志。1=进入离线状态;0=正常状态 |
表3-1网关基本模式状态字节
位连续的隐性位,则自动退出离线状态。
控制字模块占用1个字节的Profibus输出数据区,其用来在设备运行过程中对设备进行控制,内容如下表
D7 | D6-D2 | D1 | D0 |
重启设备控制位:1=重启设备;0=不重启设备 此位置1就会重启设备, 如果重启后此位还是1,则会继续重启设备。 所以重启后,此位需清零。 | 保留位 | 报文发送模式 1=定时发送 0=触发发送 | 报文发送使能 1=使能报文发送 0=禁止报文发送 |
表3-2网关基本模式控制字节
3.2.2.2、接收和发送报文帧计数模块(Frame Counter(1 Byte In/Out))
接收报文帧计数占用一个字节的Profibus输入数据区,在通信时对接收到的报文帧进行计数,报文帧计数从0到255循环往复。
发送报文帧计数占用一个字节的Profibus输出数据区,此字节用来在报文触发发送方式时控制报文的发送。当采用定时发送时,此字节内容网关不做判断。在报文触发发送方式时,当网关检测到此字节的数值发生变化时(不关心具体数值,只要有变化),就立即将Profibus Out数据区的报文通过CAN口发送一次。建议对此字节采用加1或减1操作,这样能保证每次数值都会改变。
3.2.2.3、CAN报文数据长度模块(Frame Length(1 Byte In/Out))
接收CAN报文时,数据长度字节为接收的CAN报文中的数据长度;发送CAN报文时,数据长度字节为发送CAN报文中包含的数据长度。当接收的是远程帧时,接收数据长度字节恒为0;当发送远程帧时,发送数据长度字节不起作用。
3.2.2.4、CAN报文标识符模块(Identifier(4 Bytes In/Out))
发送和接收标识符分别占用4个字节的Profibus输入输出区,接收标识符表征接收到的报文,发送标识符控制报文的发送。其具体内容如下
位31:21 | 位20:3 | 位2 | 位1 | 位0 |
STID[10:0]/EXID[28:18] | EXID[17:0] | IDE | RTR | RSV |
标准标识符或扩展标识符。依据IDE(位2)的内容,这些位或是标准标识符,或是扩展身份标识的高字节 | 扩展标识符的低字节 | 该位决定标识符的类型。 0:使用标准标识符 1:使用扩展标识符 | 该位决定帧的类型。 0:数据帧 1:远程帧 | 保留位 |
表3-3 网关基本模式CAN报文标识符模块
3.2.2.5、CAN报文数据模块(Data(8 Bytes In/Out))
CAN报文的数据长度最大是8个字节,所以本模块共预留了8个字节的Profibus In和8个字节的Profibus OUT数据,实际报文的数据长度会在0-8个字节之间。
接收报文时,用户PLC程序根据接收报文数据长度字节从Profibus In取出需要的数据;发送报文时,网关根据发送报文数据长度字节从Profibus Out取出需要的数据,然后通过CAN口发送出去。
3.3、网关高级模式下专用参数和模块的配置说明
3.3.1、网关专用参数配置
图3-5 网关高级模式专用参数配置
(1)Baud
此参数配置CAN的通讯波特率。支持的波特率有2K、3K、5K、10k、20k、30k、40k、50k、60k、75k、80k、90k、100k、120k、125k、144k、150k、160k、200k、225k、250k、300k、400k、500k、600k、666k、800k、900k、1Mbps。
(2)Identifier Type
本网关支持CAN2.0A和CAN2.0B,选项“Standard”为CAN2.0A的11位标识符模式,选项“Extended”为CAN2.0B的29位标识符模式。由于CAN总线不允许11位和29位标识符的混合使用模式,所以用户需要在使用网关前确认自己的CAN网络是使用11位还是29位标识符,然后正确选择“Identifier Type”参数。
(3)Transmisson Timer(ms)
此参数配置定时发送CAN报文时的间隔时间。取值范围为1-30000,单位是毫秒,即支持的间隔时间从1毫秒到30秒。此参数需根据发送报文的长度和波特率来调整。
3.3.2、设备模块参数配置
设备模块配置可选择Profibus数据输入输出交换区的模块数量和大小,可配置输入输出模块的内容和特性。本网关定义了3种CAN报文模块,分别是接收数据报文、发送数据报文、发送远程报文模块。接收数据报文和发送数据报文又根据数据长度分别定义了8种报文模块,另外还定义了状态字和控制字模块。状态字和控制字模块在组态时会自动添加,其他模块需要用户根据需要手动添加。
图3-6 网关高级模式设备模块
3.3.2.1、状态字和控制字模块(Status/Control(2 Byte In/Out))
本模块没有配置参数。状态字模块占用2个字节的Profibus输入数据区,其用来指示网关当前的工作状态,状态字的第二个字节目前没有使用,状态字的第一个字节内容如下表
D7-D1 | D0 |
保留位 | CAN离线状态标志。1=进入离线状态;0=正常状态 |
表3-4网关高级模式状态字第一字节
根据CAN协议,当发送错误计数器大于255时,CAN即进入离线状态。一旦硬件检测到128次11位连续的隐性位,则自动退出离线状态。
控制字模块占用2个字节的Profibus输出数据区,用来对网关进行控制。控制字第一个字节的内容如下表
D7 | D6-D2 | D1 | D0 |
重启设备控制位:1=重启设备;0=不重启设备 此位置1就会重启设备, 如果重启后此位还是1,则会继续重启设备。 所以重启后,此位需清零。 | 保留位 | 报文发送模式 1=定时发送 0=触发发送 | 报文发送使能 1=使能报文发送 0=禁止报文发送 |
表3-5 网关高级模式控制字第一字节
控制字的第二个字节通过和第一个字节的配合来实现CAN报文的触发发送。当网关工作在触发发送模式时,控制字的第二个字节为发送报文的编号,具体操作会在第5章中介绍。
3.3.2.2、接收数据报文模块(XX Byte In(CAN Receive))
本例中按接收8个字节的CAN报文操作,CAN报文标识符为0x123。
(1)插入模块
单击设备目录中“BJPCT DP-CANB Link Release 1”下的“8 Byte In(CAN Receive)”模块,并将其拖放到左侧的1号槽中,如图3-7所示
图3-7 插入CAN接收报文模块
(2)设定模块的CAN报文标识符
双击1号槽模块,弹出“属性-DP从站”对话框,在对话框中选择“分配参数”选项卡输入CAN报文的标识符。在此处输入时只能输入10进制数据,需要将CAN报文的标识符0x123转换成10进制291然后输入。
图3-8 设置CAN接收报文标识符
3.3.2.3、发送数据报文模块(XX Byte Out(CAN Send))
本例中按发送8个字节的CAN报文操作,CAN报文标识符为0x456。
(1)插入模块
单击设备目录中“BJPCT DP-CANB Link Release 1”下的“8 Byte Out(CAN Send)”模块,并将其拖放到左侧的2号槽中,如图3-9所示
图3-9 插入CAN发送报文模块
(2)设定模块的CAN报文标识符
双击2号槽模块,弹出“属性-DP从站”对话框,在对话框中选择“分配参数”选项卡输入CAN报文的标识符。在此处输入时只能输入10进制数据,需要将CAN报文的标识符0x456转换成10进制1110然后输入。
图3-10 设置CAN发送报文标识符
3.3.2.4、发送远程报文模块(Send Remote Frame)
本例中按发送标识符为0x789远程报文操作。
(1)插入模块
单击设备目录中“BJPCT DP-CANB Link Release 1”下的“ Send Remote Frame ”模块,并将其拖放到左侧的3号槽中,如图3-11所示
图3-11 插入CAN远程报文模块
(2)设定模块的CAN报文标识符
双击3号槽模块,弹出“属性-DP从站”对话框,在对话框中选择“分配参数”选项卡输入CAN报文的标识符。在此处输入时只能输入10进制数据,需要将CAN报文的标识符0x789转换成10进制1929后输入。
图3-12 设置CAN远程报文标识符