西门子模块6ES7214-2BD23-0XB8一级代理
西门子模块6ES7214-2BD23-0XB8一级代理
1 引言 2 实现步骤 图1 WINCC组件安装 图2 用STEP7新建项目 图3 声明变量 图4 编辑程序 (4) 下载到模拟软件PLCSIM上 图5 将运行模式调到RUN 图6 选地址 图7 插入OS (2) 修改变量控制属性 图8 修改变量控制属性
图9 选择Compile 图10 选择Compile的编译画面1 图11 选择Compile的编译画面2
(4) 设置PG/PC Interface 图12 设置PG/PC Interface 图13 运行WINCC
图14 设置MPI的参数 图15 WINCC画面的输出值
|
1 引言
近年来,随着微处理器、计算机和数字通信技术的迅猛发展,计算机控制已扩展到了几乎所有的工业领域。它不仅以其良好的性能满足了工业生产的广泛需要,而且将通信技术与信息处理技术融为一体,成为具有逻辑控制功能、过程控制功能、运动控制功能、数据处理功能、联网通信功能的多功能控制器。在plc组成的控制系统中,一般由plc作为下位机,完成数据采集、状态判别、输出控制等,上位机(微型计算机、工业控制机)完成采集数据信息的存储、分析处理、人机界面的交互以及打印输出,以实现对系统的实时监控。这种监控系统充分利用了微型机和plc各自的特点,实现了优势互补。其中的技术关键是实现plc与计算机的互联通信。
2 通信方式和通信协议
2.1通信方式
目前plc和pc机的互联通信方式有以下几种:
(1) 通过plc开发商提供的系统协议和网络适配器,构成特定公司产品的内部网络,其通信协议不公开。互联通信必须使用开发商提供的上位机组态软件,并采用支持相应协议的外设。这种方式其显示画面和功能往往难以满足用户的具体需要;
(2) 购买目前通用的上位机组态软件。这种方式除了要增加系统投资以外,其运用的灵活性也受到一定限制;
(3) 利用plc厂商所提供的标准通信端口和由用户自定义的自由端口通信方式。这种方式不需要增加投资,具备较好的灵活性,特别适合小规模控制系统。
s7-200系列plc的通信接口是与rs-485兼容的9针d型连接器,符合en 50170。附表给出了通信口的引脚分配。
pc机的标准串口为rs-232,西门子公司提供的pc/ppi电缆带有rs232/rs485电平转换器,因此在不增加任何硬件的情况下,可以很方便地将plc和pc机互联。
2.2通信协议
s7-200支持多种通信协议,主要有:
(1) 点对点接口协议(ppi)
ppi是主/从协议,网络上的s7-200 cpu均为从站,其他cpu、simatic编程器或td200为主站;
(2) 多点接口协议(mpi)
mpi是集成在西门子公司的可编程序控制器、操作员界面和编程器上的集成通信接口,用于建立小型的通信网络。多可接32个节点,典型数据长度为64字节,大距离100m;
(3) profibus协议
profibus协议用于分布式i/o设备(远程i/o)的高速通信。许多厂家生产类型众多的profibus设备,如简单的输入/输出模块、电机控制器和可编程序控制器;
(4) 用户定义协议(自由端口模式)
通过使用接收中断、发送中断、字符中断、发送指令(xmt)和接收指令(rcv),自由端口通信可以控制s7-200 cpu通信口。通过smb30,允许在cpu处于run模式时通信口采用自由端口模式。cpu处于stop模式时,停止自由端口通信,通信口强制转换为 ppi协议模式。
自由端口模式为计算机与s7-200 cpu之间的通信提供了一种廉价与灵活的方法。计算机与plc通信时,为了避免各方争用信道,一般采用主从方式,即计算机为主机,plc为从机,只有主机才有权主动发送请求报文,从机收到后返回响应报文。
3 plc端通信编程
plc的通信编程首先是对串口初始化。对s7-200的初始化是通过对特殊标志位smb30写入通信控制字,设置端口0通信的波特率,奇偶校验位、停止位和字符长度。smb130用于端口1的设置。显然,这些设定必须与pc机设定相一致。s7-200系列有专用的发送指令xmt(transmit),通过指定的通信端口(port),发送存储在数据缓冲区(tbl)中的信息。接收指令rcv(receive)初始化或终止接收信息的服务,通过指定的通信端口(port),接收信息并存储在数据缓冲区(tbl)中。为提高通信可靠性可以采用异或校验(或求和校验)。
使用字符中断方式接收数据,以起始字符作为接收报文的开始,部分程序如下:
//主程序
ld sm0.0
movb 16#05, smb30
//19200bps,8位数据,无奇偶校验,1位停止位
atch int_0, 8 //出现接收字符中断时执行int_0
eni //允许中断
//中断程序
ld sm0.0
dtch 10 //关闭定时中断10
xmt vb100, 0 //回送接收到的数据
atch int_0, 8 //准备接收下一帧报文
需要注意的是,如果使用pc/ppi电缆,在s7-200 cpu的用户程序中应考虑电缆的切换时间。从接收到请求报文后到发送响应报文的延迟时间和再次发出请求报文的延迟时间都必须大于等于电缆的切换时间。通信波特率为9600bps和19200bps时,切换时间分别为2ms和1ms。
4 上位机通信编程
在bbbbbbs环境下开发与工业plc通信的软件,利用visualc++6.0的通信控件mscomm控件编写软件程序。该通信控件提供了使用rs232开发串行通信软件的细则,使用事件驱动或查询方式来解决开发通信软件中遇到的问题。
在当前工程中插入mscomm控件时,如果是基于对话框或视图类是基于cbbbbview的应用程序,加入方法十分简单。如果不是,就需要创建一个mscomm控件。方法与普通的activex控件的创建类似。首先在mainfrm.h中添加声明语句:
protected: cmscomm m_mycom;
然后在mainfrm.cpp::oncreate()函数中添加下列创建控件的语句:
dword style=ws_visible|ws_child;
if(!m_mycom.create(null,style,crect(0,0,0,0),this,id_commctrl))
{
trace0("failed to create ole communications control ");
return -1;
}
开发通信程序部分代码如下:
// 首先初始化通信端口
m_mycom.setcommport(1); //选择com1
m_mycom.setinbuffersize(1024); //设置输入缓冲
//区的大小
m_mycom.setoutbuffersize(512); //设置输出缓
//冲区的大小
m_mycom.setbbbbbmode(1); //设置数据获取方式
m_mycom.setsettings("19200,n,8,1"); //设置通
//信参数
m_mycom.setbbbbblen(0); //设置读取方式
if(!m_mycom.getportopen() );
m_mycom.setportopen (true); //打开串口
收发数据时我们一般习惯于使用字符串形式(数组形式),而读写函数getbbbbb()和setoutput()都要使用variant类型(查阅msdn 可知,idispatch::invoke()的参数和返回值作为variant对象处理),可以用bstr表示字符串(包含宽字符),为了解决系统不支持宽字符的问题,使用了cbytearray,部分程序如下:
// 接收事件
void ccommdlg::oncomm()
{
int icount;
if(m_mycom.getcommevent()==2)
//接收事件,在缓冲区内数据被移走前持续产生
icount=m_mycom.getinbuffercount();
//接收到字符数目
m_mycom.setbbbbblen(icount);
if(icount>0){
colevariant vrec=m_mycom.getbbbbb();
//读取字符
vrec. changetype (vt_bstr);
m_response = vrec.bstrval;
//把接收到的变量赋给应答帧文本框变量
updatedata (false);
… } //数据处理
}
// 发送事件
void ccommdlg::onsend ()
{
// …准备需要发送的命令,放在senddata[]中
cbytearray array;
array.removeall();
array.setsize(icount);
for(int i=0;i
array.setat(i,senddata[i]);
m_mycom.setoutput (colevariant (array);
)
5 结束语
西门子s7-200型plc有很强的通信功能,在硬件配置与安装上,建议系统交流电源使用双层隔离,输入信号光电隔离,提高信噪比,远离强电布线,模拟量信号和数字信号采用屏蔽线传送,采用可靠接地等措施,能有效地消除或减弱外界信号干扰。在软件设计与编程上,加入抗干扰模块,如采用软件滤波技术,对一些重要模拟量参数进行延时判定,并进一步确认报警;在通讯软件设计中采用多种校验措施等都能大大提高系统的抗干扰性能。采用本方法设计的通讯程序简单实用、维护和扩充方便,对同类系统的设计与实现有一定的启发。
近年来,随着工厂自动化系统的兴起,可编程控制器(PLC)和现场总线在工业控制中得到了广泛的应用。在工厂自动化系统中,一般利用PLC的高可靠性、模块化结构以及编程简单等特点,将其作为下位机完成实时采集和控制任务;利用现场总线系统的开放性、互用性以及系统结构的高度分散性来构筑自动化领域的开放互连系统。控制系统中的主从站结构是经常用到的通讯方式,不过以往的从站只能单纯的靠主站中存储的程序来运行,主站若发生故障,从站就不能继续工作,这样就使整个系统的连续工作能力下降,不利于企业效益的增长。要解决这一问题,可换用带CPU的智能化DP从站,它不仅能实现独立的PID控制,也能接收PROFIBUS的PLC主站或PC主站的控制数据,构成一个数字化、智能双向、多点的通信系统现场总线网络,实现优控制,而且DP从站具有可靠性高、抗扰能力强、、维护方便的特点,因而可以很好的解决上述问题。
1 通讯结构
CPU315-2DP是西门子生产的S7系列产品,它的CPU上集成有PROFIBUS-DP通讯接口。AriCon 211-DP是北京金自天正智能控制股份有限公司(以下简称金自天正公司)的产品,它的CPU上也集成有PROFIBUS-DP通讯接口。整个的连接结构如图1所示。
图1 系统通信结构连接框图
MPI:MPI(Multi Point Interface)数据线用来连接PC机的串口和CPU315-2DP的通讯口。它是通过一个西门子生产的PC适配器把PC机的串口转化为MPI协议的。
RS232C:RS232C(RS表示Recommended Standard,C代表RS232新定义的一个型号)是目前PC机与通信工业中应用广泛的一种串行接口。它被定义为连接数据终端设备(DTE)和数据电路设备(DCE)的电缆中的信号电特性,是一种在低速率串行通讯中增加通讯距离的单端标准,采取不平衡传输方式,即单端通讯。RS232C适用于近距离传输。连接方式如图2所示。
图2 RS232串行接口连接方式
PROFIBUS-DP(Process FieldBus):采用RS485传输技术通讯,波特率可选9.6Kbps~12Mbps,电缆的大长度就取决于所选用的波特率。线路的两端带有终端传输电阻,介质为带屏蔽的双绞电缆。在这一级,PLC通过高速串行线同分散的现场设备进行通讯。
2 硬件部分
2.1 CPU315-2 DP
其主存储器的大存储量为512KB,CPU能多处理82K语句,并提供大8192个标记,512个定时器和512个计数器。同时CPU可扩充到1024DI/DO或128AI/AO。它的强大功能也可用一个集成的PROFIBUS-DP接口达到,并可作为主设备或从设备设置。多可将125个PROFIBUS-DP站连接到主设备。数据传输率为12Mbps。分布式I/O以与中央I/O完全相同的方式(即用STEP 7)进行配置和编程。它的通信协议芯片SPC3集成了DP协议中的FDL层,可以承担通信部分的微处理器负载,实现DP从站通信处理。
2.2 AriCon 211-DP
可用符合IEC61131-3标准的AriOCS对其组态编程,具有高灵活性,可以连接32个功能模块(数字I/O、模拟I/O、脉冲计数、通讯等)。具有极快的扫描周期,可连接附加的外部存储器,无需MPI适配器。大传输率为12Mbps。组态好的数据要使用RS232C下装到模块的CPU中。
3 软件部分
由PROFIBUS总线构成的现场总线控制器的软件包括:PROFIBUS总线设备的配置软件、驱动软件、组态软件和应用程序等。它们具有以下功能:主站和远程从站的参数设定,主站对从站的数据读写、图形组态、数据库建立与维护、数据统计、报表打印、故障报警,应用程序的开发、调试、运行等。其中,配置软件和驱动软件由设备厂商提供,组态软件可采用STEP7等通用型软件。
本次实验所有的软件都基于Microsoft bbbbbbs NT系统,有良好的用户界面,其功能也都相当完善和实用,使用非常方便。
3.1 编程组态软件STEP7
STEP7是西门子开发的一套SIMATIC 工业软件。它功能非常强大,不仅对开关量有完善的指令,而且在处理模拟量时也有丰富的指令系统。可以使用任何一种编程语言,如STL(语句表)、FBD(功能块图)和LAD(梯形图),可随心所欲的从一种语言切换到另一种。硬件配置工具和试验工作方式的切换设备以及指令集(存有丰富的指令),即使是非常复杂的功能也能简便地编程。地址的分配和安装模块的组态是西门子STEP7管理器的一个功能,在这里,模块作为一个实际的PROFIBUS主站系统出现。完成的工程通过串口MPI传送给CPU。
3.2 组态软件AriOCS
AriOCS是金自天正公司开发的专用于IEC1131-3 AriCon CPU21x编程组态的软件,采用IEC标准规定的五种语言。它支持在线调试修改和离线仿真,调试功能非常丰富,具有在线帮助功能。另外,它还附带了一个参数配置软件WinNCS。
3.3 GSD文件
PROFIBUS设备具有不同的性能特征,主要表现在现有功能(即I/O信号的数量和诊断信息)的不同或可能的总线参数,例如波特率和时间的监控不同。这些参数对每种设备类型和每家生产厂来说均有差别,为达到PROFIBUS简单的即插即用配置,这些特性均在电子数据单中具体说明,有时称为设备数据库文件(即GSD文件)。使用基于GSD的组态工具可将不同厂商生产的设备集成在一个总线系统中。GSD文件由生产厂商分别针对每一种设备并以设备数据库清单的形式提供给用户,此种文件格式便于读出任何一种PROFIBUS-DP设备的设备数据库文件,并且在组态总线系统时自动使用这些信息。
4 操作过程
将所有设备按照图1所示顺序连接好。
PROFIBUS通信协议将网络中通讯参与者分为主站和从站:主站首先要向从站发送通讯请求指令,从站根据请求指令中指定的内容向主站发回数据。一个主站可以向多个从站发送通讯请求,并利用从站地址(SLAVE ADDRESS)或从站识别码(SLAVE ID)来区分。
智能从站与普通从站的大区别就是带有自己的CPU,因此,它除了处理来自主站的数据外,还要处理本身的I/O数据,并且必须确保两种数据不重叠。在给主站组态的同时,也要给从站组态。
主站的CPU必须从FFh到00h记数,并且要先把来自智能从站的数据传送到主站的输出模块,然后,主站再把自己的数据传送给智能从站。从站接收到的数据必须保存在CPU外围模块的输入区域,并且通过背板总线传送给输出模块。另一方面,智能从站要从00h到FFh记数。这些数据也必须被保存到从站CPU的输出区域,然后通过PROFIBUS传送到主站,主站再传给输出模块。以此做周期性循环。
这里对以下数据进行组态:
①主站:PROFIBUS地址 1
输入区域 从10开始 字节长度:2Byte
输出区域 从20开始 字节长度:4Byte
②智能从站:PROFIBUS地址 2
输入区域 从30开始 字节长度:4Byte
输出区域 从40开始 字节长度:2Byte
参数数据 从50开始 字节长度:24Byte(固定)
诊断数据 从60开始 字节长度:6Byte(固定)
状态数据 从100开始 字节长度:2Byte(固定)
组态好的PROFIBUS地址必须与CPU模块上拨码开关设定的地址一致。
输入输出区域中的数据是映射到对方CPU中的数据:主站的输入对应于从站的输出,它们的字节长度要相等;而主站的输出则对应于从站的输入,它们的字节长度也要相等。
用STEP7给主站CPU315-2 DP组态,组态好的数据通过MPI电缆下装到主站的CPU中。在STEP7中,为主站编程,梯形图如图3所示。
图3 主站编程梯形图
其中:M0.0为中间变量,Q1.0对应于主站所带的I/O模块地址,而Q20.0则为映射到智能从站的数据,它对应着智能从站的Q30.0。
智能从站的组态采用组态软件AriOCS,组态好的数据通过RS232C传送给AriCon 211-DP。在AriOCS中,为智能从站编程,梯形图如图4所示。
图4 从站编程梯形图
其中:I30.0为映射到主站的数据,而Q2.7则对应于智能从站所带的I/O模块地址。
PROFIBUS通信协议保障了通信的高可靠性,不过这要以硬件和软件设计为基础。在通信接口连接时,必须遵循一定的规范,如信号的隔离、总线接口与收发器间避免线路过长等。这样,主从站就可以实现数据的通讯了。
5 结语
本次实验主要是实现了PLC与智能从站之间的数据通讯。使用智能从站的大好处在于,当主站出现故障停止运行时,智能从站因自身带有CPU,组态的数据都存在自己的CPU中,所以能够继续运行,而不受主站的影响,极大的提高了系统连续工作的能力,该方法值得推广应用。