西门子S7-300 系列PLC与PC机通信实现的研究
- 格式:docx
- 大小:168.06 KB
- 文档页数:5
s7 300之间tcp通讯
如何实现一台s7300通过tcp协议读取多台s7300的数据
最佳答案
300之间的以太网通讯,这要分2种情况:
1,集成pn口的s7-300cpu之间的以太网通讯:集成pn 口的cpu之间的以太网通讯除了采用s7连接之外,还可以采用openie的方式来建立tcp连接。
相关资料如下:
《s7-300和s7-400集成pn口的s7通信》
/download/docmessage.aspx?id= 3518
《pncpu/cp的开放式通讯-openie》
/download/docmessage.aspx?id= 3449&loginid=&srno=&sendtime=
2,如果300之间的通讯都是通过以太网cp来做的话,相对来说比较简单,可以在netpro之间建立tcp的静态连接,通讯即可。
值得一提的是:如果系统内都是西门子的cpu,比如s7-300,建议是都采用以太网s7的方式,因为这样组态方便,程序处理也最简单。
而如果是和别的支持标准以太网tcp的设备通讯,那么openie的方式是首选。
基于.Net平台的西门子S7_300PLC通讯的实现作者:尹大宇来源:《电子技术与软件工程》2017年第05期摘要介绍了PC与西门子S7-300PLC在.Net平台下用TCP/IP协议实现通讯的方法。
【关键词】S7-300 PLC TCP/IP套接字 .Net随着Internet/ Intranet的发展,以太网已渗透到各个角落,今天的控制系统和工厂自动化系统,以太网的应用几乎已经和PLC一样普及。
以太网相对于其他通讯方式(如Profibus/Mpi)有许多优势:(1)速度更快。
西门子CP 1543-1的通讯带宽已经可达1000Mbps。
(2)诊断更加方便快捷。
简单的ping操作就可以诊断大部分通讯问题。
(3)成本低。
不再需要使用特殊的适配器来连接到PLC,只需普通的网线。
因此,本文的研究将基于以太网的TCP/IP协议进行讨论。
1 .NET平台简介.NET Framework的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库。
在CLR执行编写好的源代码之前,需要编译它们(在C#中或其他语言中)。
在.NET 中,编译分为两个阶段:(1)把源代码编译为Microsoft中间语言(IL)。
(2)CLR把IL编译为平台专用的代码。
这个两阶段的编译过程非常重要,因为Microsoft中间语言(托管代码)是提供.NET的许多优点的关键。
Microsoft中间语言与Java字节代码共享一种理念:它们都是低级语言,语法很简单(使用数字代码,而不是文本代码),可以快速地转换为内部机器码。
对于代码来说,这种精心设计的通用语法有很重要的优点:平台无关性、提高性能和语言的互操作性。
因此,基于.NET 平台开发的应用程序具有更好的移植性,也是跨平台应用程序开发的很好选择。
2 PLC与PC的TCP/IP通讯协议基于以太网TCP/IP协议有两种通讯方式:面向对象的通讯协议(TCP)和面向无连接的通讯协议(UDP)。
在实际应用过程中,某些时候可能会采用VB/DELPHI/VC等高级语言,自主编程与西门子PLC进行通讯,这类帖子、论文在网上都可以找到,在此总结一下。
1、Prodave通讯Prodave是西门子提供的一个软件包,为高级语言编程和plc通讯提供接口通讯接口:MPI因为MPI口是每块cpu的编程口,所以plc不需要另外添加通讯模块,这个方案就比较经济,而且prodave软件包里面附带了example和详细的说明,用起来应该比较简单和方便(本人只匆匆看过文档,没有实验过)。
这方面的资料在百度上很多。
当然,mpi的速度是有限的,如果采用普通的pc adapter连接pc和plc,最高速度也就38.4kbps,我不知道prodave能否支持mpi卡(5611之类的话),如果可以的话速度可以达到187.5kbps。
2、串行通讯看到过一些论文,采用串行通讯的方法实现pc和plc通讯。
这种情况存在几点要求:a、需要为plc添加一块串行通讯模块,比如300的话就需要cp340或者cp341(前者便宜些);b、plc里面需要对串行通讯进行编程,其实也就是接收报文和发送报文,调用fb2/fb3(cp340的话)。
c、串行通讯的速度是有目共睹的,而且cp340或者cp341的数据吞吐量也是有限的,即报文长度是有限制的,因此个人认为通讯数据量大的话采用串行通讯就不合适了。
d、报文格式的话就比较自由,但是也应当合理,我虽然没有具体实验过,但是个人认为可以参考modbus的报文结构来编程,甚至就采用modbus的规范,不过这样的话要求编程者对pc和plc侧的modbus编程都要熟悉。
3、OPCOpc是这些年来很流行的东西,其实我很讨厌opc的安全认证的设定。
不过采用opc编程来访问plc真的是一件非常轻松惬意的事情。
你需要做的就是了解opc 的结构和编程,尤其是采用vb来编写opc简直是件傻瓜化的工作当然也牺牲了很多。
前面我实验了用vb通过opc(以太网)来访问300,包括用西门子的simaticnet 提供的opc接口和第三方的kepserver采用opc接口编程的优点:通讯速度快,编程简单。
探讨OPC技术的PC与S7-300PLC的实时通信0 引言西门子 S7-300/400 PLC 通信接口只有多点接口MPI 和分布式外设接口DP,分别使用MPI 协议和Profibus 协议。
但是这两种协议都不公开, 使得该系列PLC 与PC 机通信实现变得困难[1]。
因此采煤机远程监控系统中,如何采集数量和种类不断增多的现场信息以及解决通信兼容是其关键技术之一。
由于不同的厂商提供的协议不同,甚至同一厂商的不同类型设备和计算机通信的协议也不相同[2]。
在计算机系统中,不同的编程语言对驱动程序的接口有不同的要求,所以每一个客户的应用程序在从数据源读取数据时,由于软件或硬件的不一致性,对于不同的设备都要开发不同的驱动程序,这就导致了软件开发商的大量重复性劳动[3],并且由于可能存在多个应用程序同时访问同一设备带来访问冲突,导致系统崩溃。
OPC技术的出现,很好的解决这一问题。
1 OPC 技术OPC 建立在OLE 规范之上,它为工业控制领域提供了一种标准的数据访问机制。
OPC规范包括OPC 服务器和OPC 客户端两个部分,其实质是在硬件供应商和软件开发商之间建立了一套完整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的,硬件供应商无需考虑应用程序的多种需求和传输协议,软件开发商也无需了解硬件的实质和操作过程。
1.1 OPC 规范OPC 规范主要包括:DA (Data Access) 规范、AE(Alarm and Event) 规范、HAD (Historydata access) 规范、Batch 规范、Security 规范以及XML -DA 规范等。
目前应用最为广泛的是OPCDA 规范,该规范提供了服务器和客户端之间实时数据的存取方法[4]。
1.2 OPC 主要包含两种接口OPC 主要包含两种接口:CUSTOM 标准接口和OLE 自动化标准接口。
自定义接口是一组COM 接口,主要采用C++语言的应用程序开发。
西门子300PLC硬件组态流程一、实验内容利用Step7软件实现PC机与PLC基于工业以太网通信的硬件组态操作。
二、实验硬件三、流程1.硬件连接如图所示图1 硬件连接图本实验PC机与PLC通信采用工业以太网协议,需要保证二者在同一个IP地址段上,因此本地PC电脑IP地址设置为192.168.0.2,PLC的IP地址为192.168.0.1,具体怎样设置此处不重复。
2.Step7的硬件组态下面将通过新建一个项目的过程,来说明Step7 软件的组态过程。
打开控制屏上的旋钮开关,此时停止的“红灯”亮,启动计算机,双击计算机桌面上的图标打开Step7 项目管理软件,界面如图2所示:图2 STEP7 软件界面图2中有一个已经存在的工程,请把它关闭掉。
点击工具栏上 图标(或者打开File 文件菜单里面New 新建子菜单),出现如图 3 界面。
图3 新建项目界面在图3的界面里,我们在“Name 名称”栏中输入要新建的项目名称,例如:test1。
点击“Browse 浏览”按钮可以更改项目存储的路径(注意路径不能含有中文字符),不选择的则系统认为为默认的路径,一般我们可以不做更改。
单击“OK ” 后出现图 4 界面。
图 4 项目界面如图5操作,添加一个 PLC 站(S7 300),依次点击命令菜单栏中“Insert/Station/Simatic300 Station ”。
图 5 添加 S7-300PLC 站出现如图 6 下列界面。
图6 添加 S7-300PLC 站双击图6界面右边的“HardWare 硬件”后进入硬件组态界面,如图7。
图 7 硬件组态界面首先添加机架,在右边的硬件目录里选择“Simatic 300”,并点击前面的+号,在打开的列中选择“RACK-300”,单击在打开的列中选择机架rail,并用鼠标拖到左边的配置框后出现如图 8所示。
图8 机架配置图接下俩选择ps307 10A电源,拖放到1号槽位。
基于OPC技术的PC与西门子PLC的实时通讯摘要:随着我国科学技术水平的不断进步,工业在这一时期得到了长足的发展。
这一行业发展现状是与OPC工业标准的确立分不开的,文章阐述了OPC技术在PC系统上的连接方式,详细的分析了其进行通讯过程的原理。
这一内容的指出明确了搭建OPC技术中的PC机与西门子PLC系统通信架构的方式。
在此过程中,Simatic NET应用软件实现了OPC客户端与OPC服务器的实时连接。
关键词:OPC技术的PC;西门子PLC控制系统;连接通讯引言伴随着工业发展不断先前推进,这就使科学技术人员面对着大量的信息数据处理和长距离实时通讯的问题。
西门子PLC由于其具有功能性强以及易操作性的特点,被广泛的应用于我国各类工业领域的建设过程中。
本文对西门子PLC技术的应用现状进行分析,旨在使相关行业建设者更加清晰PLC当前的使用情况。
一、OPC技术的PCOPC(OLE for Process Control),是一种用于过程控制的工业标准,它可以解决各种信息设备驱动程序的通信和应用软件的通信。
对于不同制造商提供的服务程序和驱动程序,具体的解决方式是将这两种程序结合在一起。
这就解决了以往要想及时存取现场设备的数据信息,必须对每一个应用软件开发商进行编写接口函数的技术难题。
随着科学技术的不断进步现场设备的型号种类繁多,与之对应的产品也跟着不断更新升级,这就为设备用户和软件开发人员带来了庞大的工作量。
OPC工业标准在这一时期应运而生。
OPC工业标准是以微软公司的OLE技术为研发基础的,而在OPC技术中所使用的技术是OLE 2技术。
OLE技术标准成功的连接起多台计算机,使之可以在相互之间交换图案、文档等信息数据。
可以说OPC工业标准的研发使用,为连接现场不同设备以及建立企业信息系统的复杂程序提供了一个工作效率高、可靠性强以及交互操作性好的进行方案。
此外,这一技术还定义了在Microsoft操作系统中PC之间过程信息数据的交换形式。
PLC300通过PC adapter usb与PC通讯编程线缆型号为:6ES7 972-0CB20-0XA0 V1.3 驱动为2.0版本1.安装驱动在设置PG\PC的设置中,端口必须为USB,如果驱动安装不成功,则无USB 这一选项,里边有的只是COM口,COM口不能用此线通讯。
如果正常,用西门子原配的光盘,点击盘目录下的Setup.exe,按照提示,点击“下一步”安装,中间过程要自动重启。
如果异常,首次点击盘目录下的Setup.exe,则弹出近似乱码的要求重启的警示框,通过改注册表,可以解决此问题,更改方法如下:HKEY-LOAK-MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\SESSIONMANAGER在此目录下删除xxxxxxxxxxxxxx,不用重启,就可以直接安装了,如果成功;装完后要求重启,插入通讯线(通讯线必须接PLC,PLC同时必须供电,否则没有发现硬件的提示),系统提示发现新硬件,点击下一步自动安装。
那么在设置PG\PC的设置中,端口选择USB,访问路径选择PC Adapter(MPI)。
然后可以正常通讯。
如果按照上述步骤让无法安装,直接进入光盘中标有PC Adapter usb的文件夹中,进入software,选择setup.msi,安装即可。
安装完成后,在设置PG\PC 的设置中,端口中就应该有USB,选择USB,照以上步骤通讯设置。
如果再次装不上驱动,问西门子。
2.装完驱动以后的通讯正常情况,就这样的设置可以下载、上载程序。
如果报错,Online:No other active partner Can be found.请关闭PLCSIM仿真程序。
具体方法如下(以下方法为西门子官方提供):如何清除错误信息“No other active partner can be found”(出错代码33:16944)?说明:下表针对图01 中显示的错误信息提出了一些补救措施。
西门子S7-300 系列PLC与PC机通信实现的研究
主要介绍了在DELPHI 和Microsoft Access 数据库开发环境下,PC 机应用软件与西门子S7-300 系列PLC的数据通信的实现方法。
并把此方法应用于复杂控制系统的调试及PC机管理系统与PLC控制系统的信息交换中。
0 引言
西门子工控产品在我国有较高的市场占有率,它的通信及网络产品有着引导世界工控技术潮流的作用,研究西门子工控产品及通信技术的实际应用问题有着广泛普遍的重要意义。
本文通过对某市级烟草公司的卷烟配送分拣系统的研究,探讨了在Windows 环境下,用Delphi 开发的数据库应用软件与西门子S7-300 之间通信的实现问题。
该卷烟配送分拣系统计算机部分结构如图1 所示。
图1 卷烟配送分拣系统计算机部分结构图
该系统管理计算机接收信息中心局域网发送来的各条送货线路当天的访销信息数据,在此基础上管理计算机建立起以送货线路为单位的配方数据库将配方数据分批次连续地下传给PLC。
PLC 根据下传的配方数据对系统控制使其连续分拣和收集, 同时系统工作状态及工作数据通过PROFIBUS 现场总线在两个触摸屏TP27-10 得到动态显示,最后在收集工位自动得到一箱对应一个销售网点的用户配料。
为了提高调试系统的效率,我们在DELPHI 和Microsoft Access数据库平台上编写了用于PLC控制程序的调试软件。
从上看出该系统能否研制成功必须要解决的问题:是西门子S7-300 系列PLC 通讯协议不公开,管理计算机和调试计算机上第3方软件编制的程序如何
实现PC 机与西门子S7-300 系列PLC信息交换?通过技术调研和实际调试我们成功实现了在VB 、DELPHI程序开发平台上开发的管理程序及调试程序与
S7-300 系列PLC通信,顺利完成了系统研制任务。
限于篇幅,本文以调试软件的通信实现方法来讨论第3 方应用软件与西门子S7-300 PLC的通信问题
1 调试软件设计
根据PLC 控制程序的调试要求,该调试软件使用DELPHI 的数据库技术把事先设计的60 个配方数据写入数据库, 根据调试需要也可通过人机界面对数据库中的数据进行任意修改, 当执行“下传数据”命令时把数据库中的数据
字段进行一定数据处理后通过调用PRODAVE S7软件包写入PLC中对应的
DB(DATA BLOCKS)块,其中一条记录对应一个DB块,每条记录的一个字段对应该DB块中的一个字。
该调试软件也可按一定顺序读PLC中各DB块中的字,并把读取的数据经过处理后写入数据库,以供调试人员检查写入数据的正确性。
PC 机与PLC CPU318-2DP MPI 口之间的数据通信是通过PC/MPI 适配器硬件连接实现的。
图2 PLC控制程序调试软件结构及硬件连接图
2 数据通信
2.1 通信软件
实现PC机与PLC之间的数据通信是一个棘手的问题西门子公司的PRODAVE S7软件包的动态链接库(DLL )提供了大量的基于Windows NT、 Windows95/98、Windows3.11 或MS-DOS的函数,这样就使用户解决PLC与PC之间的数据交换和数据处理问题变为可能。
2.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 块中写数据字
2.3 通信程序的实现
在该调试软件中用一个专门的单元集中声明要引入的PRODAVE S7 动态链接库的例程,然后在程序中再引用这个单元,即把引入单元“prodave”加到程序的Uses 子句该引入单元的代码如下:
在调试软件的主程序中调用该引入单元前,须将软件包prodave.pas 文件加到工程中。
这样才能在主程序中调用w95_s7.dll 中的函数,具体程序调用实现如下:
初始化链接
函数load_tool 的作用在于初始化适配器,初始化参数的地址以及激活选定的界面。
程序在读写PLC数据前应该用该函数初始化PC机与PLC的连接。
此函数传送以下3 个参数:
no:此参数设置可激活连接的数量,连接个数可以达到16 个。
此例中no=1;
device 用户驱动设备名称如MPI 驱动器的设备名为S7ONLINE;
plc_adr_table:连接部分的地址列表指针。
如果没有错误,此函数返回0 ,否则返回错误信息的相应16 进制代码。
下面给出数据下载程序:
函数db_write()的作用是从PC 机的数组变量“buffer”中给PLC 的第“dbno” 个数据块中从“dwno” 个数据字开始写“anzahl” 个数据字。
如果数据块不存在将返回错误信息的代码如果要写的数据字数目的长度超过了数据块的长度,要写的数据字的长度将得到更正,同时此函数还返回
303H 的错误信息。
需要特别注意的是:数据在缓冲区存放的顺序是从高字节到低字节。
而Object Pascal 语言中,变量类型为word的变量,它的数据存放顺序是从低字节到高字节。
因而,在对所读取的数据进行操作时或给PLC 数据块中写数据字时要进行相应的处理。
结束程序之前,必须调用适配器函数unload_tool 断开PC机与PLC的连接。
否则将引起PC 机死机或者系统紊乱。
由于数据上传与数据下载的实现方法相近,限于篇幅,数据上传实现的方法本文不予介绍,请读者参考数据下载实现方法部分。
3 结束语
运用DELPHI开发环境编写的PLC控制程序调试软件,具有界面友好、人机交互功能方便、数据库功能强大灵活的优点,具有一定的通用性和实用性。
而且通过调用PRODAVE S7软件包的动态链接库实现PC 机对PLC CPU318-2DP 数据的读写操作,不但数据传输数率快,而且数据传输正确率高。
在对PLC控制系统的调试过程中,可以大大缩短调试周期,提高工作效率。
此通信技术的实现对西门子工控产品的应用及PROFIBUS现场总线的推广应用有着广泛普遍的重要意义。