西门子CP 342-5通信处理器6GK7342-5DA03-0XE0
概述:通信处理器 CP 342-5,用于将 SIMATIC S7-300 在 PROFIBUS DP 上, S5 兼容,PG/OP- 和 S7 通信
本信息已过期,发布者可在"已发商机"里点击"重发"。
西门子CP 342-5通信处理器6GK7342-5DA03-0XE0
DELPHI开发环境下PC机应用软件与PLC的数据通信的编程与实现
|
|
摘要 本文主要介绍了在DELPHI和Microsoft Access数据库开发环境下,PC机应用软件与西门子S7-300 系列PLC的数据通信的实现方法。并把此方法应用于复杂控制系统的调试及PC机管理系统与PLC控制系统的信息交换中。 关键字 DELPHI,PRODAVE,数据通信,可编程序控制器,MPI ABSTRACT This paper introduces data communication method between PC applications ,which take DELPHI and Microsoft Access as their programming language, and SIMENTIC S7-300 PLC (programmable Logic Controller). And the method is applied to debugging of complicated system and data traffic between management system and PLC system. KEY WORDS PRODAVE; PLC; Data communication; MPI; DELPHI
西门子工控产品在我国有较高的市场占有率,它的通信及网络产品有着引导世界工控技术潮流的作用,研究西门子工控产品及通信技术的实际应用问题有着广泛普遍的重要意义。本文通过对某市级烟草公司的卷烟配送分拣系统的研究,探讨了在Windows环境下,用Delphi开发的数据库应用软件与西门子S7-300之间通信的实现问题。该卷烟配送分拣系统计算机部分结构如图1所示。 从上看出该系统能否研制成功必须要解决的问题是:西门子S7-300系列PLC通讯协议不公开,管理计算机和调试计算机上第三方软件编制的程序如何实现PC机与西门子S7-300系列PLC信息交换?通过技术调研和实际调试,我们成功实现了在VB、DELPHI程序开发平台上开发的管理程序及调试程序与S7-300系列PLC通信,顺利完成了系统研制任务。限于篇幅,本文以调试软件的通信实现方法来讨论第三方应用软件与西门子S7-300 PLC的通信问题。 2调试软件设计 根据PLC控制程序的调试要求,该调试软件使用DELPHI的数据库技术把事先设计的60个配方数据写入数据库,根据调试需要也可通过人机界面对数据库中的数据进行任意修改,当执行“下传数据”命令时把数据库中的数据字段进行一定数据处理后通过调用PRODAVE S7软件包写入PLC中对应的DB(DATA BLOCKS)块,其中一条记录对应一个DB块,每条记录的一个字段对应该DB块中的一个字。该调试软件也可按一定顺序读PLC中各DB块中的字,并把读取的数据经过处理后写入数据库,以供调试人员检查写入数据的正确性。PC机与PLC CPU318-2DP MPI口之间的数据通信是通过PC/MPI适配器硬件连接实现的。
3.1 通信软件 实现PC机与PLC之间的数据通信是一个棘手的问题。西门子公司的PRODAVE S7软件包的动态链接库(DLL)提供了大量的基于Windows NT,Windows95/98,Windows3.11或MS-DOS的函数,这样就使用户解决PLC与PC之间的数据交换和数据处理问题变为可能。 3.2 通信函数 在DELPHI的Object Pascal语言中,要访问动态链接库DLL(Dynamic Link Library)中的例程有两种方式。一种是静态引入方式;另一种是动态引入方式。 本软件使用静态引入方式,即在单元的Interface部分用External指示字列出要从DLL中引入的例程。如果要引入的例程比较多,就可以用一个专门的单元来集中声明要引入的例程。 PLC控制程序调试软件用到的PRODAVE函数主要有: (1)load_tool PC机与PLC系统初始化链接; (2)unload_tool 断开PC机与PLC系统链接; (3)db_read 从PLC的DB块中读数据字; (4)db_write 向PLC的DB块中写数据字。 3.3 通信程序的实现 在该调试软件中用一个专门的单元集中声明要引入的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):Integer;stdcall;external "w95_s7.dll"; function unload_tool:Integer;stdcall;external "w95_s7.dll"; function db_read(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external "w95_s7.dll"; function db_write(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;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,"S7ONLINE",@plc_adr_table); //初始化链接 函数load_tool的作用在于初始化适配器,初始化参数的地址以及激活选定的界面。程序在读写PLC数据前应该用该函数初始化PC机与PLC的连接。 此函数传送以下3个参数: no:此参数设置可激活连接的数量,连接个数可以达到16个。此例中,no=1; device:用户驱动设备名称,如MPI驱动器的设备名为“S7ONLINE”; plc_adr_table:连接部分的地址列表指针。 如果没有错误,此函数返回0,否则返回错误信息的相应十六进制代码。下面给出数据下载程序: begin error:=false; table1.first; //定位到配方表的首记录 for i:=2 to 61 do //把60个配方数据写到DB2-DB61 begin for j:=1 to 42 do //把42个库位的自动配烟数的值高低字节调换位置存入buffer数组 begin c0:=table1.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机死机,或者系统紊乱。 由于数据上传与数据下载的实现方法相近,限于篇幅,数据上传实现的方法本文不予介绍,请读者参考数据下载实现方法部分。 |
西门子CP 342-5通信处理器6GK7342-5DA03-0XE0
[本信息来自于今日推荐网]- py1413435533发布的信息
- 西门子S7-300通信模块CP341 6ES7341-1CH02-0AE0
- SIMATIC S7-300,CP 341 通讯处理器带 RS 422/485 接口 包括项目组态包 在 CD 上...
- 西门子CP 343-2通讯模块6GK7343-2AH01-0XA0
- SIMATIC NET,CP 343-2 通信处理器,用于 连接 SIMATIC S7-300 和 ET 200M 到 AS 接口 根据 AS 接口 技术数据 V3.0...
- 西门子CP343-2通讯模块6GK7343-2AH11-0XA0
- SIMATIC NET,CP 343-2P 通信处理器,用于 连接 SIMATIC S7-300 和 ET 200M 到 AS 接口 可使用 STEP 7 进行项目组态 根据 AS 接口 技术数据 V3.0...
- 西门子CP 342-5 FO通信处理器6GK7342-5DF00-0XE0
- 通信处理器 CP 342-5 FO,用于将 SIMATIC S7-300 在 PROFIBUS DP 上, S5 兼容,PG/OP- 和 S7 通信...
- 西门子CP 343-5通信处理器6GK7343-5FA01-0XE0
- 通信处理器 CP 343-5,用于将 SIMATIC S7-300 连接至 PROFIBUS, FMS,S5 兼容,PG/OP 和 S7 通信,12 Mbit/s, 简单工作...
- 西门子以太网通讯模块CP343-1 6GK7343-1CX10-0XE0
- 通信处理器 CP 343-1 Lean,用于将 SIMATIC S7-300 连接至 工业以太网,通过 TCP/IP 和 UDP,Multicast, 发送/接收,带和不带 RFC1006,提取/写入, S7 通信(服务器), PROFINET 输入输出设备 集成 2-端...
工控系统及装备重发信息
- 西安二手旧配电箱回收 西安配电箱收购公司
- 西安配电箱收购电话 西安二手配电箱高价回收
- 西安配电箱回收公司电话 西安大型配电箱回收
- 西安配电箱高价收购厂家 西安专业高价回收配电箱电话
- 西安废旧配电箱回收 西安旧配电箱回收厂家
- 西安专业高价回收配电箱 西安配电箱变压器回收
- 西安配电箱高价收购电话 西安配电箱那里回收高
- 西安配电箱回收电话 西安专业回收箱式变压器
- 西安配电箱回收 西安配电箱高价回收
- 西安大型变压器回收 西安旧变压器回收站
- 西安专业回收变压器 西安专业高价回收变压器
- 西安二手变压器设备回收公司 西安旧变压器回收多少钱一台
- 西安电力收购废旧变压器 西安高价收购旧变压器电话
- 西安高价回收旧干式变压器 西安旧干式变压器回收公司
- 西安高价收购废旧变压器 西安哪里有回收二手变压器