西门子工程师:PLC之间的PPI该如何实现通讯设计,讲解后必懂
今天主要以西门子S7-200PLC之间的PPI通讯为例,所需硬件及网路配置:
1、S7-200CPU两台
2、装有编程软件(STEP7 V4.0)的电脑一台
3、编程电缆一条
4、PPI通讯电缆(紫色+DP头)一条
一、I/O分配
2台PLC通过PORTO(通讯口)口实现互相PPI通讯,功能为A机I0.0控制B机Q0.4,I0.1控制Q0.5。B机I0.0控制A机Q0.0,I0.1控制Q0.1。如图
二、编程:STEP V4.0新建工程(此处为主站)
1、使用编程电缆为A,B机进行时PLC地址吗,波特率进行设置,现在为主站(A机)的地址设置为1,波特率使用9.600,从站(B机)地址为2.波特率9.600(主从的波特率要一致,而且设置越高越好)。打开编程软件,单机软件左边系统快(如图1-3处),分别设置端口0 1处的地址,设置完成后点击确认保存,如下图
2、点击图1中的1处------2处,出现下图
3、在上图中需要配置几项网络读写操作,本例程为2个PLC并根据项目要求(I/O口分配),只需要2项即可即主写从,从写主。
4、点击下一步,出现下图
图中1处,可以改变的主站对从站的读写命令,2处为下一项操作(也是为改变的读写命令) 3处为存储地址。
在本例中,第1项为主站对从站的写入命令,存储地址为主站VB1000对从站的VB1000 第2项为从站对主站的写入命令,存储地址为主站VB1020对从站的VB1020.在例程中可以看到。
5、操作完成后,点击下一步出现下图
6、这里点击建议地址,程序会自动建议一个大小适合并且未使用的V存储区地址范围
7、单机下一步全部配置完成,向导将为所选的配置生成项目组件,修改或确认图中个栏目后,点击完成。配置结束,下图为此次配置的存储区域
8、定义存储器与PLC的地址联系如下表
9、开始编写程序
编程时注意,在第一个扫描周期,调用网络读写子程序NET-EXE(刚才配置的网络程序)如图:
在调用时,用鼠标拖住子程序到编程区即可,编写控制程序如图
说明,途中1处程序为把A机的I0.0 I0.1的数据写入到存储区V1000.0 V1000.1,2处为调用B机的存储区V1020.0 V1020.1的数据显示到A机Q0.4 Q01.0。程序编写完成后下在成到PLC中(A机,主站)。
10、编写从站的程序则比较简单,不需要做网络配置, 程序如图
程序说明,1处为调用A机的存储区V1020.0 V1020.1的数据显示到A机Q0.1 Q00.1,2处程序为把B机的I0.0 I0.1的数据写入到存储区V1000.0 V1000.1. 编程完成下载到PLC中,(从站B机)
11、PLC上电,测试,完成,效果为, 为A机I0.0控制B机Q0.4,I0.1控制Q0.5。B机I0.0,控制A机Q0.0,I0.1控制Q0.1。
注意,在连接PPI电缆时要注意PLC的端口,本例程为连接的端口A,B机的端口都为0端口。
此次关于实现西门子S7-200PLC之间的PPI通讯设计就到这啦,后续会有更多的内容给大家讲解!
以上,欢迎动动手分享及收藏!
实例讲解西门子300和200PLC通讯,通讯可能是PLC中最难应用的
通讯控制一直以来都是西门子不易学习,却很实用的功能,通过简单的线路连接以及软件编程,可以实现大量数据的传递,非常实用,但因使用通讯控制必须全面熟悉PLC,因此通讯控制也是PLC学习中的难点。
今天我们学习下西门子300和西门子200系列PLC的通讯。
S7-200 PLC本体没有以太网口,需要通过以太网模块CP243-1来扩展以太网通信,且一个S7-200PLC只能扩展一个CP243-1。
CP243-1最多8个以太网S7控制器通信,每个连接既可以是服务器连接也可以是客户机连接。
一个客户端(Client)可以包含1-32个数据传输操作,一个读写操作最多可以传输212个字节。如果CP243-1作为服务器运行,每个读操作可以传送222个字节。
S7-300做服务器,S7-200作为客户端
S7-200以太网向导配置
可以把S7-200的以太网模块CP243-1配置为CLIENT,使用STEP 7 Micro/WIN中的向导进行通信的配置即可。在命令菜单中选择工具--以太网向导。
图1 打开以太网向导
第一步是对以太网通信的描述,点击下一步开始以太网配置。
图2 向导介绍
在此处选择模块的位置,CPU后的第一个模块位置为0,往后依次类推;或者在线的情况下,点击读取模块搜寻CP243-1模块(在线读取将该模块的命令字节载入模块命令字节向导屏幕)。点击下一步;
图3 读取模块
选择模块相匹配的MLFB版本,本例中的CP243-1模块型号为6GK7243-1EX01-0XE0,如下图所示
图4 模块版本选择
在此处填写IP地址和子网掩码。点击下一步;
图5 地址设置
下面的对话框将组态CP243-1进行S7连接的连接数量的设置,通过S7连接可以与通信伙伴进行读写数据操作。点击“下一步”按钮继续进行S7连接组态。
图6 模块占用地址设置
选择此为客户机连接,远程属性TSAP (Transport Service Access Point)填写为03.02,输入S7-300侧的IP地址。点击数据传输按钮进入数据交换的定义。
注意:如果连接远程对象是 S7-300,TSAP为03.02;如果连接远程对象是 S7-400,TSAP为03.0x,其中x为CPU模块的槽位,可以从S7-400 站的硬件组态中找出PLC的槽号。
图7 连接设置
选择"数据传输"标记,并单击"新传输"按钮,进行配置:选择是读取数据还是写入数据,填写通讯数据的字节个数,填写发送数据区和接收数据区的起始地址。
本例中为从S7-300的MB200开始读取8个字节到VB1000开始的8个字节的区域中;从S7-200的VB2000开始的8个字节写到S7-300的QB0开始的8个字节的区域中,点击确认按钮:
注意: 本地PLC中的地址必须是V内存字节地址,远程对象中的地址必须代表字节地址。当您为S7-300/ S7-400设备输入远程地址时,若是数据块请使用DBx.DBBy格式。
图8 数据区域设置
选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。
图9 使用CRC
填写模块所占用的V存储区的起始地址。你也可以通过“建议地址”按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。
图10 配置存储区
S7-200侧编程
完成以太网向导配置后需要在程序中调用以太网向导所生成的ETHx_CTRL和ETH0_XFR, 然后,将整个项目下载到作客户端的S7-200 CPU上。
1. 调用向导生成的子程序,实现数据传输
对于S7-200的同一个连接的多个数据传输,不能同时激活,必须分时调用。下面的程序就是用前一个数据传输的完成位去激活下一个数据传输,如图11.图12.图13. 所示
图11 S7-200程序段1
图12 S7-200程序段2
图13 S7-200程序段3
如果通信未建立成功,可以对应查询子程序的错误代码。
S7-300作客户端,S7-200作服务器
S7-200以太网向导设置
通过以太网向导将以太网模块CP243-1配置为服务器,使用STEP 7 Micro/WIN中的向导进行通信的配置即可。在命令菜单中选择工具--以太网向导。
第一步是对以太网通信的描述,点击下一步开始以太网配置。
在此处选择模块的位置,CPU后的第一个模块位置为0,往后依次类推;或者点击读取模块搜寻在线的CP243-1模块(且将该模块的命令字节载入模块命令字节向导屏幕)。点击下一步;
选择模块相匹配的MLFB版本,如下图所示:
在此处填写IP地址和子网掩码。本例中将IP地址设置为:140.80.0.60,点击下一步;
下面的对话框将组态CP243-1进行S7连接的连接数量的设置。通过S7连接可以与通信伙伴进行读写数据操作,点击“下一步”按钮继续进行S7连接组态。本例中CP243-1的第三、四个连接分别为服务器连接。
组态一个到S7-300的服务器连接:
S7-200和S7-300的S7连接通过TSAP来定义。
注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。
本地TSAP为12.00无法更改,远程TSAP设置为10.04(这是在STEP7网络组态得到的参数)。激活“接受所有连接请求”复选框,点击“下一步”按钮继续组态。
选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。
填写模块所占用的V存储区的起始地址。你也可以通过建议地址按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。
点击”完成”按钮完成以太网向导设置。
之后功能块ETHx_CTRL 和 ETHx_XFR将被创建,必须在STEP 7-MicroWIN的主循环块MAIN (OB1)中调用这些功能块。
功能块ETHx_CTRL 用于建立通讯。编写图中的通讯程序,保存组态并下载到S7-200 CPU上。
注意:功能块ETHx_XFR 仅在用于客户端进行数据传送时才被调用。
S7-300侧组态
本例中使用S7-300作为样例建立S7连接,对于S7-400的组态步骤是一样的。
在STEP7中打开S7-300项目文件,通过Options--Configure Network或者是相对应的图标打开NetPro对话框。
在NetPro中选中S7-300站的CPU并通过菜单命令,Insert--New Connection添加一个新连接。
选择连接伙伴为“unspecified”及连接类型为“S7 connection”。点击“Apply”按钮,之后S7连接的属性对话框将打开。
由于S7连接是由S7-300创建,因此在S7连接的属性对话框中须激活“Establish an active connection“复选框。输入通信伙伴CP243-1的IP地址,之后点击“Address Details”按钮。
在“Address Details”对话框中,本地的TSAP通常选用默认,输入通信伙伴的TSAP,本例中S7-200的TSAP为12.00。
注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。
在NetPro中选中S7-300站,保存及编译后下载到S7-300 中,此处注意需要下载网络组态。
接下来,在S7程序中调用功能块,进行编程。
STEP7编写PUT/GET程序
需要在S7-300程序中,调用功能块FB14 “GET” 和 FB15 “PUT”。可以在Standard Library--Communication Blocks--Blocks下找到这些功能块。
注意:
1. ID:为Netpro里组态S7连接属性窗口中的Block paramters-Local ID。
2.ADDR_1为伙伴PLC的数据区域,由于通信伙伴是S7-200的V区,V区与S7-300的DB1地址相对应。
3.RD_1为本地PLC的数据接收区;SD_1为本地PLC的数据发送区。
如果通信无法建立,请查看“PUT”和“GET”指令的错误代码,STATUS仅在一个周期内有效,需要在ERROR=1时捕捉错误状态。如下图所示:
对于FB14 “GET” 和 FB15 “PUT”的输入参数'ID",也可通过鼠标右击功能块ID引脚,可以自动插入本地ID连接。如下图所示:
相关问答
西门子PLC内部寄存器VB;VD.VW什么时使用VB,什么时使用VD;和VW?
*和&是PLC指针运算符。&表示取地址,*表示指针所指向的值。&VD100=200;VB150=*VD100;相当于VB150=VB200;你如果是用XMT,那说明发送的...
西门子plc中VB、VW、VD的含义和怎么使用,这些地址选用有什么标准?
当位V200.7接通vw208=1004时PLC进行下列运算。1.将2放入VB301中2.在VD302上建立一个指针,指针指向&VB101开始的地址3.将2放入VB306中4.将0放入...
VB程序使用MSComm控件与西门子S7-200PLC使用PC/PPI编程电缆进行串行通讯,现改用USB-PC/PPI通讯电缆,问VB?
我有,不过不是VB,是DELPHI的,通过MODBUS,或者OPC我有,不过不是VB,是DELPHI的,通过MODBUS,或者OPC
西门子PLC中的IB、QB、VB、MB、SMB、SB、LB、AC各代表什么意...
[最佳回答]这些都是变量名,以BIT为单位的.比如IB1也就是IB1.0-IB0.7包括这8个位变量.I是输入,Q是输出,SM是特殊存储器,V变量,M内部存储器比较常用,S特殊寄...
做PLC的靠电气工程师考哪个方向?..._电气工程师_帮考网
考证一点用处都没有,关键看你会不会。掌握三四种常用的PLC编程,三四种组态软件的编程,三四种人机界面的编辑,变频器,伺服等,最好也掌握一点计算机高...
VB编程能干什么?就业前景如何?
VB本身能用来干什么,前几个回答基本都提到了。这里从市场需求进行一些分析:就业前景确实,VB现在在国内的就业面比较窄了,这里引用51job的职位数据:与Java...
电脑与三菱PLC通信怎么设定呀?
要实现电脑与三菱PLC之间的通信,你需要进行以下设定:1.确认通信接口:首先确定你使用的是何种通信接口,例如串口(RS232C/RS485)或以太网(Ethernet)。不...1...
plc工资一般多少?
一类地区、一类企业如果在大城市且大企业里任职PLC相关行业的职位,那么工资必定不低,大企业里的工厂自动化程度非常高,需要的知识也不仅仅只有PLC这么简单,...
labview能完全代替vb成为电机控制、性能测试和数据处理方面的主流语言软件吗?
如果只是顺序的开关电机,labview方便点,但VB编的程不要钱且分发容易,但是涉及到性能、数据库存储,查询等要求方面,这两个靠边站,只有C++才能胜任,虽然编程...
学PLC编程需要什么基础?
学习PLC编程需要以下基础:电气自动化知识:PLC编程是基于电气自动化的,因此需要掌握一定的电气自动化知识,包括电路原理、电机、传感器原理、变频器原理等等。...