(深圳市新旗滨科技有限公司)
摘要:讨论了基于Profibus协议的西门子PLC与霍廷格电源通讯的原理及实现方法,并以霍廷格TruPlasmaBipolar系列电源为例,详细研究了PLC与电源的硬件组态连接,霍廷格电源通讯协议分析以及功能编程等,实现通过Profibus协议对电源的远程控制和状态参数监控。
关键词:Profibus协议;PLC;霍廷格电源
Abstract:TheprincipleandimplementationmethodofSiemensPLCandHuttingggerPowercommunicationbasedonProfibusprotocolarediscussed.TakingtheHuntingerTruPlasmaBipolarseriespowersupplyasanexample,thehardwareconfigurationconnectionbetweenPLCandpowersupplyisstudiedindetail,HuttingggerPowercommunicationprotocolanalysisandfunctionprogramming.Etc.,realizeremotecontrolandstatusparametermonitoringofthepowersupplythroughtheProfibusprotocol.
KeyWords:ProfibusProtocol;PLC;HuttingggerPower
引言
Profibus是西门子公司开发的一种现场总线协议,应用领域包括加工制造、过程和自动化,现已成为国际化的开放式现场总线结构。Profibus由Profibus-FMS(FieldbusMessageSpecification)、Profibus-PA(ProcessAutomation)和Profibus-DP(DistribusPeripheral)组成。其中Profibus-DP具有高速传送、价格低廉的特点,是专为自控系统和设备级分散式I/O之间设计的接口。
国内某大型真空镀膜生产线控制系统采用西门子公司S7-4OOPLC通过Profibus协议与多台德国霍廷格电源TruPlasmaBipolar系列电源的通讯控制,实现了对电源功率,电压,电流,打弧密度,斜坡时间等参数的实时的有效控制及状态监视。
1系统硬件构成
S7-400PLC通过Profibus-DP总线连接9台60KW霍廷格电源TruPlasmaBipolar4060和6台30KW霍廷格电源TruPlasmaBipolar4030。霍廷格电源TruPlasmaBipolar系类配有DP通讯端口,S7-400PLC通过DP电缆采用串行方式将所有的电源连接在同一通讯链路上。电源的DP地址通过电源本身的操作屏设置,然后通过STEP7V5.5进行硬件组态。在STEP7的“HW-config”中,先安装霍廷格电源TruPlasmaBipolar4060/4030的GSD文件TruPlasma.GSD,然后选择需要的参数。具体步骤:STEP7硬件组态界面中,选择菜单Options/InstallGSDFile,安装GSD文件后,在右边硬件目录中一次展开PROFIBUSDP/AdditionalFieldDevices/General/TruPlasmaSeries,将TruPlasmaSeries图标拉到硬件组态中建立的Profibus-DP网络上,然后设置与现场对应的DP地址和通讯速率187.5Kbps,然后展开TruPlasmaSeries选择需要的参数,选择完成后,就建立了TruPlasmaSeries电源的一个子站,将子站复制后粘贴到Profibus-DP网络上,设置好地址,将所有的电源组态好后,执行“编译并保存”,并把硬件组态下载到CPU中。TruPlasmaSeries电源在DP网络中的组态见图1.
图1TruPlasmaSeries电源在DP网络中的组态
2霍廷格电源Profibus传输协议解析
TruPlasmaSeries电源的Profibus是一种允许电源单元与DP主站进行通讯的接口协议。TruPlasmaSeries电源在通信过程中充当从设备。它永远不会启动传输。Profibus主站发送以模块编码的命令由电源执行,并产生回复。方便灵活Profibus配置文件的构建允许用户构建所有通信(长度为
输入和输出缓冲区)通过Profibus只使用一个模块或几个模块。
TruPlasmaSeries电源使用具有不同字节长度的传输模块。模块序列及其数量可以不同(模块的选择和帧的长度仅取决于用户),模块系列数不超过20个且最大输入和输出字节数不超过80。根据实际生产及工艺的需要,采用整数模式,选取使读写电源的一部分功能,而不同的功能参数对应电源的不同模块序列。其中具体选择模块序列如:Module1,Module8,Module21,Module20,Module12,Module14,Module16,Module42,Module26,不同模块序列组合通过硬件组态体现出来,如图一所示的硬件组态。具体的模块定义,结合霍廷格电源厂家提供的资料结合使用需求解析如下内容。
Module1控制位该模块由一个字节构成,包括8个位,定义如下:
0:Profibus主站控制单元(1有效)1:--
2:主继电器接通(1有效,0关闭)3:上电(1有效,0关电)
4:报警复位(1有效)5:复位电弧数(1有效)
6:--7:--
Module8选择控制模式(整数)该模块由3个字节组成,第一个字节表示控制模式(0表示功率模式P,1表示电压模式U,2表示电流模式I)第二三个字节表示设定值。
Module21以整数形式设置/读取参数该模块由4个字节组成,第一个字节定义为数据组数,第二个字节定义为通道数,第三第四字节定义为实际值(读)或者设定值(写),如下表所示。
输出字节
Module20确认位该模块由3个字节构成,该模块由3个字节组成,它提供基本的二进制状态数据。
Module12实际输出电压(整数)该模块由2个字节组成,以整数形式表示实际输出电压。
Module14实际输出电流(整数)该模块由2个字节组成,以整数形式表示实际输出电流。
Module16实际输出功率(整数)该模块由2个字节组成,以整数形式表示实际输出功率。
Module42打弧密度该模块由2个字节组成,表示每秒钟产生的打弧数。
Module26打弧次数该模块由2个字节组成,表示实际打弧数。
3程序设计
程序功能是为了完成S7-400通过Profibus-DP总线实现对15台电源的信息进行读和写数据操作,考虑到系统的扩展性,暂定可以容纳20台电源。程序设计采用初始化程序循环20次调用FC91,读取电源地址信息。如图1所示硬件组态,因为生产的需要,工艺上选择两种功率的电源,60KW和30KW,但两种电源的通讯协议和定义是一样的。电源60KW_1电源起始地址分别为PIW2787,PQW1984,电源60KW_2地址为PIW2821,PQW2000,分别间隔17个字和8个字(INT型),60KW_1对应DB块DB49,依次,60KW-2---60KW-13,30KW-1---30KW-7对应的DB块为DB50---DB68,实现该功能的初始化程序如下,具体程序解析在右侧,用“//”表示。
L2787//电源60KW-1输入起始地址
T#s_Trup_AI_Add
L1984//电源60KW-1输出起始地址
T#s_Trup_AO_Add
L49//电源60KW-1地址信息存储的DB块号
T#s_Trup_DB_NUM
L20//电源数据(实际15台,用20方便扩展)
A_88:T#s_Trup_LoopNum
CALL"FC_TruP_AI_AO_Address"//FC91读取并存储电源地址信息
AI_Power_Start_Address:=#s_Trup_AI_Add
AO_Power_Start_Address:=#s_Trup_AO_Add
DB_Num_PowerData:=#s_Trup_DB_NUM
//AI_Add
L#s_Trup_AI_Add
L17//相邻电源之间输入信息地址相差17个字
+I
T#s_Trup_AI_Add
//AO_Add
L#s_Trup_AO_Add
L8//相邻电源之间输出信息地址相差8个字
+I
T#s_Trup_AO_Add
//DB_NUM
L#s_Trup_DB_NUM
L1
+I
T#s_Trup_DB_NUM
L#s_Trup_LoopNum
LOOPA_88
NOP0
以上初始化程序通过对电源地址的循环寻址,循环读取不同电源地址信息,同时循环写入电源对应的数据DB块。程序中,通过对间接寻址指针内容的动态修改,就完成了主体程序执行的结果变更。如何动态改写指针的赋值呢?我们需要将指针内容按照顺序逐一指向相应的数据字,这种对指针内容的动态修改,其实就是遍历。对于遍历,最简单的莫过于循环。一个循环包括以下几个要素:
1、初始循环指针
被循环主体(主体程序)
2、循环指针自加减
3、继续或者退出循环体的条件判断
被循环的程序主体必须位于初始循环指针之后,和循环指针自加减之前。正是由于对真正的目标程序(主体程序)不做任何变动,而寻址指针是这个程序中唯一要修改的地方,可以认为,寻址指针是主体程序的入口参数,就好比功能块的输入参数。因而可使得程序标准化,具有移植性、通用性。
具体实现对电源的各种功能模块参数信息的读取和写入操作由下列程序实现,具体程序解析在右侧,用“//”表示。
NET1
L#DB_Num_PowerData//读取DB块号
T#t_DB_Num_PowerData
OPNDB[#t_DB_Num_PowerData]//打开电源对应DB块
L0
LAR2
NET2
L0
LAR1
//DI
L#AI_Power_Start_Address//读取电源输入地址首地址指针
SLD3
LP#2.0
+D
TDBD[AR1,P#42.0]//Module21参数组,模块21Set/readparameter,ReadOnly,2byte
//DO
L#AO_Power_Start_Address
SLD3
TDBD[AR1,P#10.0]//控制字Q地址,Module1ControlBits,1byte
LP#1.0
+D
TDBD[AR1,P#14.0]//选择控制模式选择Q地址,Module8selectcontrolmode,1byte
LP#1.0
+D
TDBD[AR1,P#18.0]//选择控制模QW控制数值地址,Module8selectcontrolmode,2byte
LP#2.0
+D
TDBD[AR1,P#22.0]//Module21参数组,Module21Set/readparameter,1byte
LP#1.0
+D
TDBD[AR1,P#26.0]//模式Module21参数通道,Module21Set/readparameter,1byte
LP#1.0
+D
TDBD[AR1,P#30.0]//Module21参数数值,Module21Set/readparameter,2byte
//反馈值写入DB块中
//1
L#AI_Power_Start_Address
SLD3
LAR1
LIW[AR1,P#4.0]
TDBW[AR2,P#100.0]
LIB[AR1,P#6.0]
AWW#16#7
TDBB[AR2,P#102.0]//Module20ACKnowledgementBits确认位
//电压
LIW[AR1,P#7.0]
TDBW[AR2,P#104.0]
//电流
LIW[AR1,P#9.0]
TDBW[AR2,P#106.0]
//功率
LIW[AR1,P#11.0]
TDBW[AR2,P#108.0]
//打弧密度
LIW[AR1,P#13.0]
TDBW[AR2,P#110.0]
//打弧次数
LIW[AR1,P#15.0]
TDBW[AR2,P#130.0]
4结束语
采用西门子PLC400系列,通过组态西门子Profibus通讯协议与霍廷格电源TruPlasmaBipolar的实时通讯,很好的实现了对霍廷格电源的远程数据访问和对电源的远程开关机,功率,电压,电流的设置,满足了生产工艺的应用需求,目前这种方式已经应用在多条真空磁控溅射多模生产线上。
参考文献:
[1]廖常初.西门子工业通信网络组态编程与故障诊断.北京:机械工业出版社,2009.
[2]OpreratingInstructionsforTruPlasmaBipolar4030PowerSupply;Rev.5.3.18.2.WP4WI2020K.17.01