PC机和S7站之间的工业以太网通讯_第1页
PC机和S7站之间的工业以太网通讯_第2页
PC机和S7站之间的工业以太网通讯_第3页
PC机和S7站之间的工业以太网通讯_第4页
PC机和S7站之间的工业以太网通讯_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SIMATICNET # 1关于本文件本文件包括PC机和S7站之间的匸业以太网通讯例子信息该通讯釆用基于TCP/IP的S7协议的BSEND/BRCV功能和PC的用户程序。关于本例子的概述.参见第2章.详细内容请参见第3章及其后章节。本文件包括下面主题:系统结构所需功能块及其通讯结构的介绍程序结构和代码摘录操作员控制及监视故障检测SIMATICNET 2例子概述系统不意图主站从站例子功能性检查根据PC的对话框.可以检查例子是否正确运行。启动PC应用系统后.将显示该对话框。发送和接收的数据可连续改变其值.功能框图下图示出了例子的运行过程.数据交换通讯中涉及的各站周期性地交换2字节数据.主站/从站主

2、站向从站写入数据.从站接收数据并向主站返回数据.主站接收数据并显示对话框。程序主站说明:从站说明:写入和读取数据后,数据将以增鼠1BRCV:递增写入,BSEND/BRCV循环再次來口主站的数据被接收。启动BBSEND:数据返回到主站。SIMATICNETSIMATICNET #操作员控制及监视发送和接收的数据在PC端的窗口上显示.当发送新数据时.接收的数据必须改变为该值。利用提供的变量表.在SIMATICS7端可以实现操作员的监控功能。必须满足下列条件.才能使用“监视和更改变量”程序:必须与CPU在线联接。“监测变量”必须被激活。要更改的值必须被标为有效。如果满足以上条件.可以通过观察发送及接

3、收数据在PC及PLC侧的变化.来检测例子程序是否正确运行。SIMATICNETSIMATICNET 3系统结构本章列出了运行例子所需的硬件和软件提示本文件适用范围本文件假设了一个规定的配置惜况。PC通讯处理器CP1613,CP443-1TCP功能块BSEND/BRCV本例子釆用S7协议.采用该协议和BSEND/BRCV,可在PC和SIMATICS7站之间进行数据交换.CP1613和CP443-1TCP用作通讯处理器.主站所需硬件模块订货号PCCP16136GK1161-3AAOOS7-16136GK1716-1CB11-3AA0从站所需硬件插槽模块订货号1PS40710A6ES7407-0KA

4、00-0AA02CPU414-16ES7414-1XK02-0AB04CP443-1TCP6ES7443-1EX00-0XE0对其它硬件配置的适用性注意CP应为3.0版本或3.0以上版本。用NCMS7INDUSTRIALETHERNETDiagnostics可以检查CP的版本Simatic-NCMS7IndustrialEthernet-IndustrialEthernetDiagnostics如果CP低于3.0版本,可对其软件进行更新从Internet/Intranet下载一个新版本.并用NCMS7工业以太网固件装载器装入CPh注意使用不同的CPU如果本例子中使用不同的CPU请阅读“Chan

5、geCPU气更换CPU戊件.注意使用不同的CP如果本例子中使用不同的CP.请阅读-ChangeCPM使换CP)文件。所需电缆及其它硬件MPI电缆屯太网电缆:电缆类型取决于所釆用的传输介质如AUI和ITPHub或扇出装置.例如ELMSSV104PG或PC带MPI端口所需软件要求使用下列软件以运行例子:操作系统为MicrosoftWindows95或WindowsNT4.0STEP7V5.0SP3见“注意JNCMS7INDUSTRIALETHERNETV5.0+SP34所需功能块及其通讯结构本章包括下列主题:例子如何运行通讯所需功能块及其通讯结构4.1例子如何运行数据交换通讯中涉及的各站周期性地交

6、换2字节数据.主站/从站端发送和接收数据的启动总是由PC(主站、进行.从站SIMATICS7PLC-ft收到数据马上将其返回至主站。主站用户程序的顺序执行在主站.需要一个用户程序以进行通讯.该用户程序调用程序库中的功能.应用系统如何运行的详细描述请参见5.1节。递增数据将要写入的数据值以增量1递增.读/写周期再次启动.在每个读写周期后将传送的数据值加1。从站上用户程序的顺序BRCV:主站的数据被接收。BSEND:接收的数据被发送至主站。顺序图示主站从站PCCP准备BSENDIBRCV-4数据值以1递增.CP发送至从站-从从站接收通讯循环工业以太网PC从主站接收一发送至主站-CPUBRCV位存储

7、器区BSEND4.2通讯所需功能块及其通讯结构本章进一步详细介绍BSEND/BRECV通讯所需的BSEND和BRECV功能块,BSEND功能块(SFB12)功能块的用途BSEND系统功能块SFB)将数据从指定的发送缓冲区传送至已定义好的接收缓冲区。发送缓冲区指针可以指向一个过程映像区、一个位存储器区或一个数据块。在网络联接的组态中.从站定义了一个ID号。当用BSEND功能块发送数据时.该ID号用于指明联接。功能块参数的详细描述请参见第5章.BRCV功能块(SFB13)功能块的用途BRCV功能块(SFB、将从配置的对方站接收的数据传送至专门的接收缓冲区.接收缓冲区可以指向一个过程映像区.一个位存

8、储器或一个数据块.接收缓冲区应大于所接收的数据长度。在网络联接的组态中.从站定义了一个ID号.半用BRCV功能块接收数据时.该ID号用于指明联接。功能块参数的详细描述请参见第5章.SIMATICNETSIMATICNET # 5程序结构和程序摘录本章介绍主站和从站的程序结构.给出并说明部分程序.5.1主站的程序结构SIMATICNETSIMATICNET 5.2主站程序摘录5.2.1PC:全局定义#ifndefMY_S7_H#defineMY_S7_H/*定义*/#defineRADIX10#defineMY_MSG_ID1500/*S7信息ID*/*GLOBALS*/*来自CP的信息*/HI

9、NSTANCEhlnst;/*实例控制值*/HWNDhWnd;/*主窗口控制值*/ord32CPDescriptor;/*CP和VFD编址*/ordl6CRef;/*参考联接*/ordl6uiWriteData;/*写数据缓冲器Vordl6uiReceivedData;/*PROTOTYPES*/*接收数据缓冲器*/LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);/*对话框功能*/*“DATA对话框*/BOOLAPIENTRYDataProc(HWND,UINT,UINT,LONG);/*nERROR1对话框*/BOOLAPIENTRYError

10、Proc(HWND,UINT,UINT,LONG);/*S7通讯*/*启动通讯*/voidmy_init(void);/*结束通讯*/voidmy_shut(void);/*出错圧理*/voidmy_error_handler(void);/*接收来自CP的?7信息*/voidmy_receive(void);/*建立原接*/voidmy_initiate_request(void);/*评估信息*/voidmy_get_initiate_confirmation(void);/*在远程站疳劫接收BSEND工作*/voidmy_brcv_init(void);/*将数撅写至适程站*/voidm

11、y_bsend_request(void);/*评估信息*/voidmy_get_bsend_confirmation(void);/*接收乘自辭站的慑据*/voidmy_get_brcv_indication(void);/*接收上次的fms错複*/voidmy_get_last_s7_error(HWND);#endif/*结束模块mys7.h*/5.2.2用途调用名称说明PC:WndProc该功能控制应用系统的运行.可与SIMATICS7中的OB1相比.在每个周期调用。WndProc()源于应用窗口的事件在该功能中被处理。无论用户何时想发送新数据.应用系统都产生一条信息.这些信息在该功能

12、中被用作“控制值SIMATICNETSIMATICNET # 程序LRESULTCALLBACKWndProc(HWNDhWindow,UINTuiMessage,WPARAMwParameter,LPARAMlParameter)/*信息处理*/switch(uiMessage)/指向被点击的菜单*/caseWM_COMMAND:switch(wParameter)/*MenupointWrite/Read-Start1*/caseIDM_START:/*调用初始化CP功能*/my_init();/*建立与远程主站的联接*/my_initiate_request();break;defaul

13、t:break;break;/*来自本地CP的S7信息*/caseMY_MSG_ID:/*调用处理信息的功能*/my_receive();break;caseWM_DESTROY:PostQuitMessage(0);break;default:return(DefWindowProc(hWindow,uiMessage,wParameter/lParameter);return(OL);/*结束WndProc*/SIMATICNETSIMATICNET PC:BSEND用途在该功能中数据被写至从站调用在my_receive()功能内调用名称niy_bsend_request()程序voidm

14、y_bsend_request(void)int32iRet;ord32r_id=1;ordl6uiChangedWriteData;/*改变高/低字节c工业以太网有其它数据、*/*可见.与PC相比*/IHIBYTE(uiWriteData);0/r_id,uiChangedWriteData=(uiWriteData8)/*向服务器发送一个变量*/iRet=s7_bsend_req(CPDescriptor,CRefz&uiChangedWriteData,sizeof(uiWriteData);/*出错?*/if(iRet!=S7_OK)my_error_handler();/*结束my_

15、bsend_req*/S7_bsend_req()功能参数的意义CPDescriptor:该参数包含CP和VFD的地址。CRef:该参数与联接有关R_id:该参数是联接的IDuiChangedWriteData要发送的数据由该参数定义.Sizeof(uiWriteData):该参数包括数据的长度(2字节人返回值iRet:功能状态被输入该参数.如果该值不是S7.OK,则显示出错并中断应用.PC:BRCV用途该功能接收从站的数据。调用在my_receive()功能中调用名称my_get_brcv_indication()程序voidmy_get_brcv_indication(void)int32

16、iRet;ord32r_id_remote;ord32received_data_length;/*从服务器接收变量(2字节)*/iRet=s7_get_brcv_ind(&uiReceivedDataz(ord32)sizeof(uiReceivedData)&r_id_remotef&received_data_length);/*出错?*/if(iRet!=S7_OK)my_error_handler();/*改变高/低字节t工业以太网有其它字节调整)*/*与PC相比)*/uiReceivedData=(uiReceivedData8)|HIBYTE(uiReceivedData);/*

17、tnJtlmy_get_brcv_indicatioin*/S7_get_brcv_ind()功能参数的意义uiReceivedData:接收的数据输入该参数中。Sizeof(uiReceiveData):该参数包括数据的期望长度2字节人R_id_remote:该参数对应从站BSEND功能块的R_ID参数.Received_data_length:该参数包扁接破数据的长度.返回值iRet:功能状态被输入该参数.如果该值不是S7_OK则显示出错并中断应用.SIMATICNETSIMATICNET # SIMATICNETSIMATICNET # #5.3从站程序结构SIMATICNETSIMAT

18、ICNET #SIMATICNETSIMATICNET # 5.45.4.1用途调用名称编码说明5.4.2用途调用名称从站程序摘录从站端:OB1OB1负责用户程序的循环执行.下面的例子程序调用执行发送/接收功能BSEND和BRCV的功能块。OB1在每个CPU循环中被调用。OB1L2TMW58CALLFC51/MYBRCVCALLFC50/MYBSENDBE在每个CPU循环中OB1调用FC51(调用BRCV)和FC50(调用BSENDk从站端:BSENDI作采用系统功能块BSEND,2字节的数据被发送至对方站.在OB1内调用。Connetions获得人RJD:工作号.在发送端与接收端.该工作号是

19、一一对应的。DONE指示工作的无错误执行.ERROR:指出是否有错误发生.STATUS:提供匚作执行期间状态或出错的详细信息。SD_1:要应送数据的本地地址区。LEN:要发送的数据区的长度。说明CALL“SFB12”.DBI2:BSEND系统功能块被调用。根据ERROR位的条件.使用无条件程序块结束指令(BEU)可以存储状态字或退出功能。DB12是背景数据块。总结当BRCV调用成功完成后.发送功能块在每个周期均被启动.用于传送数据。发送期间如果发生错误.返回的状态值被保存在数据块中.5.4.3从站端:BRCV工作用途采用系统功能块BRCV,接收2字节数据。调用在OB1内调用。名称Connect

20、ions*得到人R_ID:工作号.在发送端与接收端该工作号是一一对应的。NDR:指示工作的无错误执行.ERROR:指示错误是否发生。STATUS:提供匸作执行过程中有关状态或出错的详细信息.SD_1:发逹数据存放的本地地址区.LEN:接收数据区域的长度.说明:CALL“SFB13DB13:BRCV系统功能块被调用.根据ERROR位保存状态值。总结接收块在每个周期被启动以便接收数据。接收时如果出现错误.返回的状态值存在一个数据块中。SIMATICNETSIMATICNET SIMATICNET #6操作员控制和监视本章包括下列主题:在SIMATICS7端监控变量在PC端进行操作员监视和控制注意如

21、果在操作员控制和监视期间发生故障请阅读第7章故障检测.监视用例子提供的变量表可以监视功能。下表说明了如何使用变暈表。步骤说明1断开从站MPI端口的MPI电缆一端2将MPI电缆的这一端插入主站中S7CPU的MPI端口3在主站下SIMATICManager的项目窗口中选择“Blocks刖4双击VATI”5在MonitoringandModifyingVariablesw程序中选择wConnectToM-wConfiguredCPUW6耍监视定义的变量,选择Variable-“Monitor注意l*eMonitoringandModifyingVariables*程序的状态栏中显示Online时监视

22、功能被激活.完成上述步骤后.可以看到下面的变量表数值可能会有偏差!b/从PC读和写数据:MW25DEZ/BSEND关键参数/DONE:M54.0BIN/ERROR:M54.1BIN/STATUS:MW56HEX/BRECV关键参数/NDR:M50.0BIN/ERROR:M50.1BIN/STATUS:MW52HEX如果例子正确运行:由于变最表的周期性更新.读和写的数据有可能出现偏差.如果例子正确运行.这些值将不断增加.注意、“I写和读和数据值不断增加时.说明例子正确运行。!切记!变量表必须在线且监视必须被激活数值才能被更新.操作员控制用本例子提供的变量表可以在SIMATICS7PLC上运行.如

23、何启动和激活.前面已有所表述.用一个对话框可以启动或关闭PC程序.对话框同时也显示数据.用“YES”按键启动数据的发送.用“NCT按键关闭程序.退出操作员控制和监测步骤说明1在MonitoringandModifyingVariables州程序中选择wTabIeM-MExitwo2在随后的对话框中点击“NCT键。SIMATICNETSIMATICNET SIMATICNET #7故障检测本章将在您安装和启动例子遇到困难时.为您提供帮助.下载硬件配置、联接或运行功能块时故障进行下面检査。如果对某一问题回答为否定时.请直接到“解决办法”中找到相应办法.步骤说明1MPI电缆同时与PG/PC和S7CPU相联了吗?2在wSimaticw-SIMATICNET妙-SetPG/PCInterface臨2在InterfaceparametersetusedM中设置准备用于MPI端口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论