西门子模块6ES7231-7PF22-0XA0大量供应
西门子模块6ES7231-7PF22-0XA0大量供应
近年来,随着工厂自动化系统的兴起,可编程控制器(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中,所以能够继续运行,而不受主站的影响,极大的提高了系统连续工作的能力,该方法值得推广应用。
对象:
① 三菱PLC:FX2N + FX2N-485-BD
② 三菱变频器:A500系列、E500系列、F500系列、F700系列、S500系列
两者之间通过网线连接(网线的RJ45插头和变频器的PU插座接),使用两对导线连接,即将变频器的SDA与PLC通讯板(FX2N-485- BD)的RDA接,变频器的SDB与PLC通讯板(FX2N-485-BD)的RDB接,变频器的RDA与PLC通讯板(FX2N-485-BD)的 SDA接,变频器的RDB与PLC通讯板(FX2N-485-BD)的SDB接,变频器的SG与PLC通讯板(FX2N-485-BD)的SG接。
A500、F500、F700系列变频器PU端口:
E500、S500系列变频器PU端口:
一.三菱变频器的设置
PLC和变频器之间进行通讯,通讯规格必须在变频器的初始化中设定,如果没有进行初始设定或有一个错误的设定,数据将不能进行传输。
注:每次参数初始化设定完以后,需要复位变频器。如果改变与通讯相关的参数后,变频器没有复位,通讯将不能进行。
对于122号参数一定要设成9999,否则当通讯结束以后且通讯校验互锁时间到时变频器会产生报警并且停止(E.PUE)。
对于79号参数要设成1,即PU操作模式。
注:以上的参数设置适用于A500、E500、F500、F700系列变频器。
当在F500、F700系列变频器上要设定上述通讯参数,首先要将Pr.160设成0。
对于S500系列变频器(带R)的相关参数设置如下:
对于79号参数设成0即可。
注:当在S500系列变频器上要设定上述通讯参数,首先要将Pr.30设成1。
二.三菱PLC的设置
三菱FX系列PLC在进行计算机链接(专用协议)和无协议通讯(RS指令)时均需对通讯格式(D8120)进行设定。其中包含有波特率、数据长度、奇偶校验、停止位和协议格式等。在修改了D8120的设置后,确保关掉PLC的电源,然后再打开。
在这里对D8120设置如下:
RS485
b15 b0
0000 1100 1000 1110
0 C 8 E
即数据长度为7位,偶校验,2位停止位,波特率为9600bps,无标题符和终结符,没有添加和校验码,采用无协议通讯(RS485)。
有关利用三菱变频器协议与变频器进行通讯的PLC程序如下:
1 前言
可编程控制器(plc)是集计算机技术、自动控制技术、通信技术为一体的新型自动控制装置。由于体积小、可靠性高以及组态灵活等优点,plc在工业控制领域得到了广泛的应用。在plc组成的自动测量和控制系统中,一般采用主从式控制结构,由plc向计算机发送数据,计算机处理数据后根据具体情况向plc发出相应的指令,控制plc的运行。plc作为下位机,完成数据采集、状态判别、输出控制等任务,上位机(微型计算机、工业控制机)完成采集数据信息的存储、分析处理、状态显示以及打印输出等任务,以实现对系统的实时监控。目前市场上常用的人机界面或监控组态软件价格昂贵且由国外公司垄断, 对于小型企业的单机系统来说,许多功能并不实用,同时组态软件的本身也还存在不足之处,不能满足一些特殊要求。因此,目前仍然需要技术人员根据实际情况开发小型经济适用的软件。笔者针对比较简单的控制系统,利用vc++6.0设计了一个通信程序,实现了bbbbbbs环境下上位计算机对多台plc的灵活监控。
2 通信类型
日本三菱公司是国际的工厂自动化设备制造商,其工业可编程控制器在占有相当大的份额。本项目选用三菱fx2n-48mr型plc,fx系列plc支持以下5种通信类型:
(1) plc的n:n通信方式;
(2) plc双机并联通信方式;
(3) plc与计算机专有协议通信方式;
(4) plc与计算机无协议通信方式(使用rs指令或fx2n-232if特殊功能块);
(5) 自由端口设计方式(需要特殊通信模块,使用较少)。
各种通信类型的具体特性列于表1。本系统采用专有协议通信方式,以pc机为主站,通过fx-485pc-if及fx2n-485bd与多台plc从站连接(多16台),每台plc被赋予唯一的站号用以标志身份,上位机通过rs-485通信总线对plc进行控制。
3 通信协议
fx2n系列plc通信采用异步格式,较常用的数据帧由1位起始位、7位数据位、1位停止位及1位校验位组成,波特率为9600bps。传输数据以字节为单位,分为高4位和低4位,每4位转化为1个ascii字符发送。以上位机从plc读取数据为例。
计算机方发送数据帧格式如表2所示:
enq是请求通信标志;station no.代表plc站号,设定范围00h-0fh;pc no. 是plc的cpu代号,fx系列为ffh;command是操作命令码,具体内容列于表3;message wait time表示从命令发出到plc回应之间的等待时间,允许值从0-150ms,设定为00h-0fh;character area a为传送字符串,包括位元件或字元件的首地址和单元字节个数; sum check code是和校验码,分为高4位和低4位。
plc应答格式如表4所示。
stx是帧开始字符;character area b为传送数据,fx系列plc一次多可以传送64比特即40h数据;etx为帧结束字符;其余含义同上。
本程序的主要功能为,每隔一定时间(由用户通过界面设定)按站号顺序批量读取plc中位元件y000-y017的状态,将数据存放入数据库plc表中。
总共有2台plc,对于站号为i 的plc,命令格式如表5所示。
4 软件编程
软件设计选用visualc++6.0作为开发平台,利用其提供的mscomm控件,可以方便地实现plc与上位机的串行通信。该通信控件提供了使用rs232开发串行通信软件的细则,使用事件驱动或查询方式来解决开发通信软件中遇到的问题。该控件有27个属性,主要的属性如表6所示。
首先将mscomm控件加入工程,同时安装1个系统定时器。通信控件m_mycom用于访问串口、发送和接收数据;系统定时器用于控制每隔一定时间间由上位机向plc发送命令。通信程序部分代码如下:
// 首先初始化通信端口
bool cplccommdlg::oninitdialog()
{……
m_mycom.setcommport(1); file://选择com1
m_mycom.setinbuffersize(1024); file://设置输入缓冲区的大小
m_mycom.setoutbuffersize(512); file://设置输出缓冲区的大小
m_mycom.setbbbbbmode(1);//设置数据获取方式
m_mycom.setsettings("9600,e,7,1");//设置通信参数
m_mycom.setbbbbblen(0); file://设置读取方式
if(!m_mycom.getportopen() );
m_mycom.setportopen (true); file://打开串口
stationno=0x30;
if(settimer(1,m_usertime,null)==0)
afxmessagebox("error setting,please check it!")
}
file://消息处理函数ontimer
void cplccommdlg::ontimer(uint nidevent)
{
byte receivedata[1024];
byte senddata[]={`0x05`,`0`,`i`,`f`,`f`,`w`,`r`,`a`,`y`,`0`,`0`,`0`,`0`,
`0`,`1`,`sumh`,`suml`};
if(stationno<0x31)
stationno++;
else
stationno=0x30;
senddata[3]= stationno;
sumcheck(senddata,17)
cbytearray array;
array.removeall();
array.setsize(17);
for(int k=0;k<17;k++)
{
array.setat(k,senddata[k]);
}
m_mycom.setoutput(colevariant(array));//发送命令
……//数据接收处理及加入数据库操作
}
file://和校验函数sumcheck
void cplccommdlg::sumcheck(byte temp[],int n)
{
int i;
byte sum=0x00,sumh=0xf0,suml=0x0f;
for(i=1;i<=n-3;i++)
sum+=temp[i];
suml= suml∑
sumh= sumh∑
sumh= sumh>>4;
temp[n-1]= suml;
temp[n-2]= sumh;
}
5 结论
串行通信是目前计算机与其他设备之间重要的通信手段之一,本程序作为小型监控系统的重要组成部分,实现了上位机对多台plc的实时监控,传送数据准确,程序运行稳定。整个控制系统方便可靠,同时又节省了大笔投资,具有相当大的实用性。