电动机功率 | 3kW | 外形尺寸 | 4mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 4kg |
全新的西门子S7-1500PLC 带来了标准型,紧凑型,分布式以及开放式不同类型的 CPU 模块。凭借快速的响应时间、集成的 CPU 显示面板以及相应的调试和诊断机制,SIMATIC S7-1500 的 CPU *地提升了生产效率,降低了生产成本。
![]() |
参考价 | ¥354 |
订货量 | 1 |
更新时间:2019-06-10 12:13:23浏览次数:227
联系我们时请说明是化工仪器网上看到的信息,谢谢!
云南西门子S7-1500PLC模块代理(优势价格)
PLC与人机界面如何实现MPI通信
1)原理
S7-300/400与HMI之间的MPI通信不需要STEP 7组态,也无须编写程序,只需在HMI组态软件中设置相关通信参数即可。
2)应用
现在艾特贸易小编通过对某市级烟草公司的卷烟配送分拣系统的研究,探讨在Windows环境下,用Delphi开发的数据库应用软件与西门子S7-300之间的通信实现问题。该卷烟配送分拣系统计算机部分的结构如图10-37所示。
图10-37 卷烟配送分拣系统计算机部分的结构
该系统管理管理计算机接收信息中心局域网发送来的各条送货线路当天的访销信息数据,在此基础上管理计算机建立起以送货线路为单位的配方数据库,将配方数据分批次连续地传给PLC。PLC根据下传的配方数据对系统控制使其连续分拣和收集,同时系统工作状态及工作数据通过PROFIBUS现场总线在两个触摸屏TP27-10得到动态显示,后在收集工位自动得到一箱对应一个销售网点的用户配料。为了提高系统调试效率,在Delphi和Microsoft Access数据库平台上编写了用于PLC控制的程序的调试软件。由以上看出该系统能否研究成功必须解决的问题是:西门子S7-300系列PLC通信协议不公开,管理计算机和调试计算机上第三方软件编制的程序如何实现PC与西门子S7-300系列PLC的信息交换?通过技术调研和实际调试,成功实现了在VB、Delphi程序及开发平台上开发的管理程序及调试程序与S7-300系列PLC通信,顺利完成了系统研究任务。
3)步骤
(1)调试软件设计
根据PLC控制程序的调试要求,该调试软件使用Delphi的数据技术把事先设计的60个配方数据写入数据库,根据调试需要也可通过人机界面对数据库中的数据进行任意修改。当执行“下传数据”命令时,把数据库中的数据字段进行一定的数据处理后通过调用PRODAVE S7软件包写入PLC中对应的DB (Data Blocks)块,其中一条记录对应一个DB块,每条记录的一个字段对应该DB块中的一个字。改调试软件也可按一定顺序读PLC中各DB块中的字,并把读取的数据经过处理后写入数据库,以供调试人员检查写入数据的正确性。PC与PLC CPU 318-2DP MPI口之间的数据通信是通过PC/MPI适配器硬件连接实现的。如图10 38所示为控制程序调试软件结构及硬件连接图。
(2)数据通信
①通信软件。
实现PC与PLC之间的数据通信是一个棘手的问题。西门子公司的PRODAVE S7软件包的动态链接库(DLL)提供了大量的基于Windows NT、Windows 95/98、Windows 3.11或MS-DOS的函数,这样就使用户解决PLC与PC之间的数据交换和数据处理问题变为可能。
②通信函数。
访问动态链接库DLL (Dynamic link Library)有两种方式:一种是静态引入方式;另一种是动态引入方式。该软件使用静态引入方式,即在单元Interface部分用External指示字列出要从DLL中引入的例程。
PLC控制程序调试软件用到的PRODAVE函数主要有:
load tool-PC与PLC系统初始化链接;
unload tool-断开PC与PLC系统链接;
db read-从PLC的DB块中读数据字;
db write-向PLC的DB块中写数据字。
③通信程序的实现。
在该调试软件中用一个专门的单元集中声明要引入的PRODAVE S7动态链接库的例程,在程序中引用这个单元,即把引入单元“prodave”加到程序的Uses子句。该引入单元的代码如下:
unit prodave;
interface
type
Tadr_table_type=record
adr:byte; segmentid:byte;
slotno:byte; rackno:byte;
end;
function
load_tool(no:Byte;name:PChar;adr table_type:PChar):lnteger;stdcall;external
”w95 s7.dll”;
function unload tool:lnteger;stdcall;external”w95_s7.dll”;
function
db_read(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer; stdc
all,external“w95_s7.dll”;
function
db_write(blockno:integer;no:integer; amount:pointer;buffer:pointer):integer; std
call,external”w95_s7.dll”;
implementation
end.
在调试软件的主程序中调用该引入单元前,须将软件包prodave.pas文件加到工程中。这样才能在主程序中调用w95一s7.dll中的函数,具体程序调用实现如下:
implementation
uses prodave;
{$R*.DFM)
begin
plc_adr table[0]:= 2;{address} plc_adr_table[1]:=0;{segment id)
plc_adr_table[2]:=2;{slotno} plc_adr_table[3]:=0;{rackno) plc_adr_table[4]:=
0;
res:=Load_tool(1,”S70NLNE”,@plc_adr_table);//初始化链接
函数load tool的作用在于初始化适配器、初始化参数的地址及激活选定的界面,程序在读/写PLC数据前应该用该函数初始化PC与PLC的连接。
此函数传送以下3个参数:
no-此参数设置可激活连接的数量,连接个数可以达到16个。此例中,。
device-用户驱动设备名称,如MPI驱动器的设备名为“S70NLINE”。
plc_adr_table-连接部分的地址列表指针。
若无错误,此函数返回0,否则返回错误信息的相应十六进制代码。下面给出数据下载程序:
begin
error:=false;
tablel.first;//定位到配方表的首记录
for i:=2 t0 61 do//把60个配方数据写到DB2~DB61
begin
for j:=1 to 42 do//把42个库位的自动配烟数的值高、低字节调换位置,存入buffer数组
begin
c0:=table l.fields.fields[j].asinteger;
clow:=c0 shl 8:
chigh:=c0 shr 8;
cdate:=clow xor chigh;
buffer[j-1]:=cdate;
end;
anzahl:=42;
dbno:=i; //DB块
dwno:=1://第1个数据字,即DW2
res:=db_write(dbno,dwno,@anzahl,@buffer);
函数db_write()的作用是从PC的数组变量“buffer”中给PLC的第“dbno”个数据块中从“dwno”个数据字开始写“anzahl”个数据字。如果数据块不存在,将返回错误信息代码。
如果要写的数据字数目的长度超过了数据块的长度,要写的数据字的长度将得到更正,同时此函数还返回303H的错误信息。
需要特别注意的是:数据在缓冲区存放的顺序是从高字节到低字节,而Object Pascal语言中,变量类型为word的变量,它的数据存放顺序是从低字节到高字节。因而,在对所读取的数据进行操作时或给PLC数据块中写数据字时要进行相应的处理。结束程序之前,必须调用适配器函数unload_tool断开PC与PLC的连接。否则,将引起PC死机,或者系统紊乱。
由于数据上传与数据下载的实现方法相近,数据上传的方法可参照数据下载的方法来做。
通过MPI实现PLC与PLC之问通信有三种方式。
(1)全局数据包(GD)通信方式:全局数据包通信方式只需在STEP 7的硬件配置中,组态PLC之间的发送区和接收区,不需编写任何程序,这种通信方式只能在S7-300/400 PLC之间进行。这种通信方式的通信数据包长度为:S7-300大为22字节,S7-400大为54字节。
(2)无组态连接通信方式:无组态的MPI通信需要调用系统功能块SFC65~SFC69来实现MPI通信,这种通信方式适合于S7-300、S7-400和S7-200之间的通信,而且是不需要组态的连接结构。无组态的MPI通信可分为双边和单边编程两种通信方式。
●双向通信:通信的双方都需要调用通信块,一方调用发送块,另一方就要调用接收块来接收数据。这种通信方式适用于S7-300/400之间的通信,发送块是SFC65 (X_SEND),接收块是SFC66 (X RCV),如图10-34和图10-35所示。
●单向通信:单项通信类似于客户机与服务器模式,只在客户机一方编写程序读/写服务器端数据。这种通信方式适合于S7-300/400/200之间的通信。S7-300/400的CPU可作为客户机和服务器,S7-200只能作为服务器。
(3)组态连接通信方式:组态连接通信方式不仅要组态,还要调用系统功能块完成通信,其数据包长度大为160字节,适用于S7-400之间及S7-300之间的MPI通信。当S7-400和S7-300通信时,S7-300只能作为服务器端,S7-400用来做客户端。
MPI (MultiPointlnterface)是多点接口的简称,是当通信速率要求不高、通信数据量不大时,可以采用的一种简单经济的通信方式。通过它可组成小型PLC通信网络,实现PLC之间的少量数据交换,它不需要额外的硬件和软件就可网络化。每个S7-300 CPU都集成了MPI,MPI的物理层是RS-485。通过MPI,PLC可以同时与多个设备建立通信连接,这些设备包括编程器PG或运行STEP 7的计算机PC、人机界面(HMI)及其他SIMATIC S7、M7和C7。同时连接的通信对象的个数与CPU的型号有关。通信协议MPI通信可适用于PLC 200/300/400、操作面板TP/OP及上位机MPI/PROFIBUS 通信卡, 如CP5512/CP5611/CP5613等进行数据交换。MPI网络的通信速率为19.2kb/s~12Mb/s,通常默认设置为187.5kb/s,只有能够设置为PROFIBUS接口的MPI网络才支持12Mb/s的通信速率。MPI网络多可以连接32个节点,大通信距离为50m,可以通过中继器来扩展长度。
云南西门子S7-1500PLC模块代理(优势价格)