PLC 以太网通讯


云锋
个人主页给TA发消息加TA为好友发表于:2011-03-04 14:44:55楼主

实际工程中用过的PLC 以太网通信案例,需要把PLC型号、与PLC通信的设备、通信的各种参数及情况、通信实现的功能等说明清楚,贴出程序并加以说明。

PLC及与PLC通信的设备类型不限。

工控PLC擂台每周一期,本期下周结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。

回复 修改举报 收藏 评分
abysmal
个人主页给TA发消息加TA为好友发表于:2011-03-05 06:23:361楼
上星期用ISaGRAF做了一个基于UDP/IP 的多站通讯的演示程序。

用户的要求:主站需要500ms一次向7个从站发送数据,每个从站则2秒一次向主站传送数据。有一个从站作为备用主站,当主站发生故障时起到主站的作用。为了便于演示,主站和从站的程序代码应该是相同的,程序根据PLC的IP地址确定自己的身份。
修改设为最佳回复引用 回复 举报 评分
welfare87
个人主页给TA发消息加TA为好友发表于:2011-03-05 19:44:112楼

S7-200 之间的以太网通信
       S7-200 之间的以太网通信,S7-200 既可以做为Server(服务器)端,也可以做为Client(客户端)。
1、S7-200 做为Server 端
        S7-200 做为Server 端时,只响应Client 端的数据请求,不需要编程,只要组态CP243-1 就可以了。 

(1)选择“工具”菜单下的“以太网向导...”。 PLC 以太网通讯_第1张图片
     

 (2)打开“以太网向导”,简单介绍CP243-1 及以太网的有关信息,点击“下一步”。
PLC 以太网通讯_第2张图片
      
(3)设置CP243-1 模块的位置,如不能确定,可以点击“读取模块”由软件自动探测模块的位置,点击“下一步”。
PLC 以太网通讯_第3张图片

(4)设定CP243-1 模块的IP 地址和子网掩码,并指定模块连接的类型(本例选为自动检测通讯),点击“下一步”。
PLC 以太网通讯_第4张图片
(5)确定PLC 为CP243-1 分布的输出口的起始字节地址(一般使用缺省值即可)和连接数据数,点击“下一步”。
PLC 以太网通讯_第5张图片
(6)设置本机为服务器,并设置客户机的地址和TSAP。
           TSAP:由两个字节构成,第一个字节定义了连接数,其中: 
           Local TSAP 范围:16#01,16#10~16#FE
           Remote TSAP 范围:16#01,16#03,16#10~16#FE 
           第二个字节定义了机架号和CP 槽号。
           如果只有一个连接,可以指定对方的地址,否则可以选中接受所有的连接请求。
        “保持活动”功能是CP243-1 以设定的时间间隔来探测通信的状态,此时间的设定在下步设定。
PLC 以太网通讯_第6张图片
(7)选择是否需要CRC 保护,如选择了此功能,则CP243-1 在每次系统重启时,就校验S7-200 中的组态信息看是否被修改,如被改过, 则停止启动,并重新设置IP 地址。
“保持活动间隔”即是上步中的探测通信状态的时间间隔。
PLC 以太网通讯_第7张图片

(8)选定CP243-1 组态信息的存放地址,此地址区在用户程序中不可再用。
PLC 以太网通讯_第8张图片
(9)至此,S7-200 服务器端的以太网通信已经组态完毕,如下图, 给出了组态后的信息。点击“完成”保存组态信息。
PLC 以太网通讯_第9张图片
(10)在程序调用子程序“ETH0_CTRL”。
         参数说明:ETH0_CTRL 为初始化和控制子程序,在开始时执行以太网模块检查。应当在每次扫描开始调用该子程序,且每个模块仅限使用一次该子程序。每次CPU 更改为RUN(运行)时,该指令命令CP243-1以太网模块检查V 组态数据区是否存在新配置。如果配置不同或CRC保护被禁用,则用新配置重设模块。
当以太网模块准备从其他指令接收命令时,CP_Ready 置1。Ch_Ready的每一位对应一个指定,显示该通道的连接状态。例如,当通道0 建立连接后,位0 置1。Error(错误)包含模块通信状态。 
2、S7-200 做为Client 端
       S7-200 做Client 端时,组态步骤前5 步同S7-200 做Server 时,注意在第4 步中客户端的地址要设主192.168.147.2。
(1)~(5)步同Server 端时的步骤。
(6)选择本机为客户机,并设定服务器的地址和TSAP。由于客户机需要组态发送或接收服务器的数据,点击“数据传输”按钮。 
PLC 以太网通讯_第10张图片

(7)在弹出的画面中点击“新传输”。
PLC 以太网通讯_第11张图片
(8)选择客户机是接收还是发送数据到服务器及接收和发送的数据
区,如有多个数据传输(最多32 个,0~31),可按“新传输”按钮
定义新的数据传输。
PLC 以太网通讯_第12张图片

修改设为最佳回复引用 回复 举报 评分
彩云之滇东北
个人主页给TA发消息加TA为好友发表于:2011-03-06 13:23:103楼
我有西门子300的通信,稍后发上   
修改设为最佳回复引用 回复 举报 评分
iori880808
个人主页给TA发消息加TA为好友发表于:2011-03-06 15:21:364楼
用组态软件就可以实现多台PLC之间的数据交换。不用编写通讯程序
修改设为最佳回复引用 回复 举报 评分
bhdxzgp
个人主页给TA发消息加TA为好友发表于:2011-03-06 15:47:285楼
S7300和S7200的以太网模块都用过!
修改设为最佳回复引用 回复 举报 评分
五花马
个人主页给TA发消息加TA为好友发表于:2011-03-06 17:25:406楼

弄个双以太网的冗余的,其他的就别发了。

修改设为最佳回复引用 回复 举报 评分
hjcan
个人主页给TA发消息加TA为好友发表于:2011-03-06 20:41:227楼

通过调用S7通讯提供的SAPI-S7应用程序接口实现PC机与S7300/400PLC基于工业以太网的数据通讯

1、SIMATIC NET工业以太网

SIMATIC NET工业以太网是用于大型集散控制系统的高速网络系统,最高通信速率可达100Mbps,通讯距离为1.5Km(同轴电缆)或4.5Km(光纤)网络可连接多于1000个节点。它是基于IEEE802.3的工业标准总线系统,采用CSMA介质访问控制协议。节点之间通过连接方式进行数据传输,由主动站建立连接,被动站加以确认。PG/PC和PLC之间可建立无穷多个连接,而每个PLC最多可建立16个PLC-PLC连接。每一个连接最多一次可发送240个字节;传送的数据为:I/O地址,中间寄存器和DB数据块。可按位、字节、字、双字等方式读写。

工业以太网由独立的网段组成,每个网段最多500m,最多可连接100个站点,网段之间用中继器连接。两站之间最多接两个中继器,构成1000米得远程中继站。每个数据终端设备DTE通过耦合器连接到网上,DTE可以是工作站PC和编程器PG,S7、S5、M7等系列得PLC设备,以及其他支持ISO传输的非西门子系统。网络通讯接口设备为自带CPU的CP(通讯处理器)模块,在它的固件中固化了ISO参考模型的1到7层协议。CP完成所有的通讯任务,可大大减轻DTE的CPU负担。S7-300一般采用CP343-1板,S7-400一般采用CP443-1板。PC/PG上一般装有网卡CP1613,也可以用CP1413、CP1511、CP1411。 

2、 S7通讯

S7通讯是SIMATIC S7 PLC之间得最佳化通讯协议,它也允许用户通过S7协议连接PC和工作站。每个作业的用户的最大用户数据量可到64K(中等到大型的数据量)。可以被MPI、PROFIBUS和工业以太网所支持,是西门子公司开发的基于应用层的一个协议。S7通讯提供了简明、强有力的通讯服务和与网络无关的用户接口,用于工业以太网、PROFIBUS和MPI。需要安装SIMATIC Net软件,目前最新版本是V6.2。 

3、 数据通讯的实现

S7通信协议不公开,管理计算机和调试计算机上第三方软件编制的程序如何实现PC机与西门子S7 300/400 PLC之间的信息通讯是个棘手的问题。为了允许PC机和工作站上的应用程序与西门子S7系列产品进行S7通讯,西门子公司提供了一个SAPI-S7应用程序接口,通过它可以灵活而方便地跟西门子S7系列产品进行通信。安装SIMATIC Ner软件后,会在系统system32目录下生成一个s732.dll文件,该动态链接库提供了大量基于WindowsNT、Window95/98、Windows3.11和MS-DOS的函数,这样就使得用户解决PLC和PC机的数据交换和数据处理问题变为可能。通信编程包括两个部分:(1)CP连接组态(2)PLC与上位机通信编程。 

4、 CP连接组态

可采用step7软件或step7软件中用于工业以太网的NCMS7软件对CP进行网络组态。通讯处理器CP可连接PC,PC/PG上一般装网卡CP1613。在Windows控制面板下的“set PC/PG”下安装所用网卡驱动程序,并设协议、站号、波特率、是否为主站,完成对VFDs(Virtual Field Device)和S7 connections的配置[4]。 

8、 PLC和上位机的通讯编程

S7-300/400PLC有以下各类资源:①输入点I:接收外部开关量信号 ②输出点Q:输出给外部的开关量信号 ③内部辅助点M:存放所需中间结果 ④时间继电器T ⑤计数器 ⑥数据块DB:存放程序数据的存储区域 ⑦外设输入PI:主要接收模拟量输入信号经A/D转换⑧外设输出PQ:给出模拟两输出值[5]。要读/写这些资源,首先要建立PLC和PC机的连接。 

(1) 初始化与PLC的连接

SAPI-S7应用程序接口提供的管理服务模块(Administrative Services)提供了一些可供读出配置信息和登录/退出通讯系统的函数,下面作一些简要介绍:

Ø s7_get_device() :通过此函数,用户程序可以查询所有已安装的CP的CP名。

Ø s7_get_vfd() :通过此函数,用户程序可以查询任一指定CP的所有已配置的VFD。

Ø s7_init():通过此函数,用户程序可登录通讯系统。

Ø s7_get_cref() :此函数提供了一个指向所选S7 connection名的指针。

Ø s7_get_conn():此函数返回已登录VFD的所有S7 connection名和指向他们的指针。

Ø s7_shut():通过此函数,用户程序可退出通讯系统。

一个应用程序可以登录一个或多个CP的若干个VFD,只有当应用程序登录CP及其所选的VFD,在配置期间指定给该VFD的所有连接才是有效的。

(2)读/写PLC内部资源

初始化与PLC的连接成功后,就可以对PLC进行读写操作。对PLC存储区即数据块DB的读写是实现监控的最基本操作。SAPI-S7应用程序接口提供的变量服务模块(Variable Services)提供了一些读写函数,由于篇幅有限,现选一些经常用到的函数作一些简单介绍。

Ø s7_cycl_read():此函数通知服务方准备对单存储单元循环读一个变量。

Ø s7_get_cycl_read_ind():此函数接收来自服务方发送的数据。

Ø s7_multiple_read_req():此函数通知服务方准备对多存储单元读一个或多个变量。

Ø s7_get_multiple_read_cnf():此函数接收来自服务方的一个或多个变量的值。

Ø s7_multiple_write_req():此函数通知服务方准备对多存储单元写一个或多个变量。

Ø s7_get_multiple_write_cnf():此函数接收来来自服务方的执行上述写请求的结果。

需要特别注意的是:S7 300/400PLC遵循“高地址、低字节”的规律,这与某些习惯用法不同。例如在C++Builder6中,变量类型为word的变量,它的数据存放顺序是“低地址,低字节”的规律。因此在对所读取的数据进行操作或给PLC数据块中写数据字时要进行相应的处理。

为解决上位机不能因前台的信息处理而中断后台的监听等问题,可采用多线程编程技术,将对PLC内部资源的读/写功能模块交给一个后台线程来完成。多线程编程技术能提高CPU利用率,加快信息处理,提高系统的实时性,在由多台计算机组成的分布式实时控制系统中应用多线程技术是完全必要的。 

(3) 后台读/写线程模块部分代码

·····

do

{

ret = s7_receive(cp_descr,&cref,&orderid);

switch(ret)

{

case S7_NO_MSG:

break;

case S7_INITIATE_CNF:

Synchronize(my_get_initiate_cnf);

Synchronize(my_multiple_read_req);

break;

case S7_MULTIPLE_READ_CNF:

Synchronize(my_get_multiple_read_cnf);

Synchronize(my_multiple_read_req);

break;

·

·

case S7_ABORT_IND:

Synchronize(my_get_abort_ind);

break;

case S7_VFD_STATE_CNF:

Synchronize(my_get_vfd_state_cnf);

Synchronize(my_abort);

break;

case S7_VFD_USTATE_IND:

Synchronize(my_get_vfd_ustate_ind);

break;

default :

·····

}

}while(ret != last_event_expected)

修改设为最佳回复引用 回复 举报 评分
siyuan3222
个人主页给TA发消息加TA为好友发表于:2011-03-06 23:47:008楼
楼上那个应该是西门子的以太网通讯例子吧
修改设为最佳回复引用 回复 举报 评分
zhxl198808
个人主页给TA发消息加TA为好友发表于:2011-03-07 08:56:399楼

学习了,还请大家都关照下,谢谢诶

 

修改设为最佳回复引用 回复 举报 评分
彩云之滇东北
个人主页给TA发消息加TA为好友发表于:2011-03-07 09:33:5710楼

第一步:组台硬件

PLC 以太网通讯_第13张图片
第二步:组台网络
PLC 以太网通讯_第14张图片
第三步:配置从站通讯
PLC 以太网通讯_第15张图片
第四步:编辑控制程序
PLC 以太网通讯_第16张图片
实现多个cpu通讯
修改设为最佳回复引用 回复 举报 评分
伺服菜鸟
个人主页给TA发消息加TA为好友发表于:2011-03-07 10:40:3211楼

关于以太网通讯我感觉主要有3点:1.主要是看好以太网模块在模组中所在的位置

2.设置好以太网的网址

3.确定联接的线没有故障

下面我以三菱Q系列PLC为例,是一台负荷区分设备,主要的PLC构成如图:

PLC 以太网通讯_第17张图片
现在设置PLC编程软件,首先把PLC各个模块所在位置设定好,每个模块的点数确定好,后设置图如下:
PLC 以太网通讯_第18张图片
PLC 以太网通讯_第19张图片
确定完各个模块的I/O点数后,然后设置网络参数,网络参数主要是以太网模块的起始I/O,站号以及操作设置里面的基本参数;如下图:
PLC 以太网通讯_第20张图片
PLC 以太网通讯_第21张图片
这些参数设置好,就可以实现正常的通信了
因这设备也用到了CC-LINK,我也顺便把设置参数列出来,不多解释,上图:
PLC 以太网通讯_第22张图片
PLC 以太网通讯_第23张图片
本人嘴拙,不会细细描述,大概就是这样,呵呵
修改设为最佳回复引用 回复 举报 评分
cqu_rockwell
个人主页给TA发消息加TA为好友发表于:2011-03-07 20:42:0512楼

通过CP343-1 实现S7-300 之间的以太网通讯

一、硬件组态
首先搭建一套测试设备,设备的结构图如下:
2 套S7-300 系统由PS307 电源、CPU314C-2DP、CPU314C-2PTP、CP343-1、CP343-1 IT、
PC、CP5611、STEP7 组成,PLC 系统概貌如下图:

PLC 以太网通讯_第24张图片
如下将一步一步展示如何实现2 套S7-300 之间的以太网通讯:
第一步:打开SIMATIC Manager,根据我们系统的硬件组成,进行系统的硬件组态,如图:
插入 2 个S7300 的站,进行硬件组态:
PLC 以太网通讯_第25张图片
分别组态2 个系统的硬件模块:
PLC 以太网通讯_第26张图片
PLC 以太网通讯_第27张图片
设置CP343-1、CP343-IT 模块的参数,建立一个以太网,MPI、IP 地址:
PLC 以太网通讯_第28张图片
PLC 以太网通讯_第29张图片
PLC 以太网通讯_第30张图片
PLC 以太网通讯_第31张图片
修改设为最佳回复引用 回复 举报 评分
cqu_rockwell
个人主页给TA发消息加TA为好友发表于:2011-03-07 20:56:3113楼

二、网络组态
组态完2套系统的硬件模块后,分别进行下载,然后点击Network Configration按钮,打开系统的网络组态窗口NetPro,选中CPU314,如下图:

 

PLC 以太网通讯_第32张图片
在窗口的左下部分点击鼠标右键,插入一个新的网络链接,并设定链接类型为ISO-on-TCP connection 或 TCP connection或 UDP connection 或 ISO Transport connection,如下图:
PLC 以太网通讯_第33张图片
点击OK后,弹出链接属性窗口,使用该窗口的默认值,并根据该对话框右侧信息进行后面程序的块参数设定:
PLC 以太网通讯_第34张图片
PLC 以太网通讯_第35张图片
当2套系统之间的链接建立完成后,用鼠标选中图标中的CPU,分别进行下载,这里略去CPU314C-2DP的下载图示:
PLC 以太网通讯_第36张图片
修改设为最佳回复引用 回复 举报 评分
cqu_rockwell
个人主页给TA发消息加TA为好友发表于:2011-03-07 20:59:3614楼
三、程序编程
到此为止,系统的硬件组态和网络配置已经完成。下面进行系统的软件编制,在SIMATIC Manager界面中,分别在CPU314C-2PTP、CPU314C-2DP中插入OB35定时中断程序块和数据块DB1,DB2,并在两个OB35中调用FC5(AG_Send)和FC6(AG_Recv)程序块,如下图:
PLC 以太网通讯_第37张图片
创建DB1、DB2数据块,如下图:
PLC 以太网通讯_第38张图片
2套控制程序已经编制完成,分别下载到CPU当中,将CPU状态切换至运行状态,就可以实现S7-300之间的以太网通讯了。
如下界面说明了将CPU314C-2DP 的DB1中的数据发送到CPU314C-2PTP 的DB2中的监视界面:
a. 选择Data View,切换到数据监视状态:
PLC 以太网通讯_第39张图片
b. CPU314C-2DP 的DB1中发送出去的数据:
PLC 以太网通讯_第40张图片
c. CPU314C-2PTP 的DB2中接收到的数据
PLC 以太网通讯_第41张图片
修改设为最佳回复引用 回复 举报 评分
秒杀G
个人主页给TA发消息加TA为好友发表于:2011-03-09 14:46:5715楼
楼上的,你字体模糊啊……
修改设为最佳回复引用 回复 举报 评分
秒杀G
个人主页给TA发消息加TA为好友发表于:2011-03-09 14:50:3816楼
回复内容:
对:彩云之滇东北 关于

第一步:组台硬件

PLC 以太网通讯_第42张图片
第二步:组台网络
PLC 以太网通讯_第43张图片
第三步:配置从站通讯
PLC 以太网通讯_第44张图片
第四步:编辑控制程序
PLC 以太网通讯_第45张图片
实现多个cpu通讯
内容的回复:


是走的Profibus还是以太网
修改设为最佳回复引用 回复 举报 评分
玻璃的心
个人主页给TA发消息加TA为好友发表于:2011-03-09 15:01:2817楼
回复内容:
对:秒杀G 关于 回复内容:
对:彩云之滇东北 关于

第一步:组台硬件

PLC 以太网通讯_第46张图片
第二步:组台网络
PLC 以太网通讯_第47张图片
第三步:配置从站通讯
PLC 以太网通讯_第48张图片
第四步:编辑控制程序
PLC 以太网通讯_第49张图片
实现多个cpu通讯
内容的回复:


是走的Profibus还是以太网 内容的回复:

明显Prifibus,这个猫是不能给分吧!!!!!
修改设为最佳回复引用 回复 举报 评分
涛声依旧
个人主页给TA发消息加TA为好友发表于:2011-03-09 15:03:4018楼
我的WINCC和S7用以太网通讯突然中断,西门子的说少了一个以太网抓包软件。还有就是共地没有做好。叫我不知道是不是这么回事???????
修改设为最佳回复引用 回复 举报 评分
涛声依旧
个人主页给TA发消息加TA为好友发表于:2011-03-10 00:01:3019楼

没有人回答啊            

修改设为最佳回复引用 回复 举报 评分
yanwen0227
个人主页给TA发消息加TA为好友发表于:2011-03-10 02:20:3520楼

楼上的各位辛苦了.......

修改设为最佳回复引用 回复 举报 评分
zxjjynl
个人主页给TA发消息加TA为好友发表于:2011-03-10 11:31:5321楼
S7-300/400之间互连
1、采用PLC与PLC通过以太网访问,需要增加以太网模块,如CP343-1,CP443-1的模块,或者采用带有PN接口的PLC,如CPU315-2DP/PN的PLC。
2、采用两块CP343-1互连,先在同一个项目里做好两套PLC的硬件组态,分配好IP地址,打开NetPro,选择其中一个PLC,双击连接列表上的空白行,添加一个
S7 conection。选择连接的另一个PLC,记住连接的ID号。通讯双方的其中一个站为Client端,激活“Establish an active connection”的选项(默认是激活的)。这样NetPro的配置就完成了,编译、下载完成
3、打开其中两套PLC的OB1,调用FB12(BSEND)块发送数据,FB13(BRCV)块接收数据,1#PLC的发送对应2#PLC的接收,1#PLC的接收对应2#PLC的发送。
4、调用FB12的时候几个参数的含意,a、REQ,发送开始,上升沿触发发送工作;b、ID,连接ID号,这个ID号是在NetPro组态时生成的ID号;c、R_ID,连接号,相同连接号的FB块互相对应发送接收数据,这个是由用户编程时定义的,例如1#PLC的FB12的R_ID是DW#16#2,则2#PLC的FB13的R_ID也是DW#16#2,这样才能保证正常接收发送;d、DONE,发送完成,如果REQ端是一个不停的脉冲,正常情况下DONE端也应该也是一个不停的脉冲反馈;e、SD_1,发送的开始地址,以P# x.x byte xxx来表示,f、LEN,发送数据的长度。
5、采用FB12、FB13来进行发送/接收是比较麻烦的,一方面需要两端的以太网模块都支持双边发送,如Cp343-1-Lean就不支持了,另一方面,两边都要写程序,对于增加的系统不太方便,所以这时可以在NetPro里把One-way(单边通讯,激活后FB12、FB13不能使用)激活,采用FB14(GET)取数据、FB15(PUT)发送数据来做,FB14的参数定义和FB12差不多,只是少了R_ID和LEN,这样更方便一些,而且还有一个好处,不需要对原有的系统进行什么更改,只需要把单边的PLC组态和程序下载就可以了
6、需要注意的另一个问题是FB和SFB的区别,在S7-400上采用SFB,在S7-300上采用FB,在S7-300集成的PN口上,采用SFB,这个问题曾经折磨过我一两天才解决。
修改设为最佳回复引用 回复 举报 评分
最后回复
个人主页给TA发消息加TA为好友发表于:2011-03-10 16:36:1322楼

S7-300PLC利用S7通信协议进行工业以太网通信

 

1、新建项目
在STEP 7中创建一个项目,取名为“IE_S7” ,点击右键,再弹出的菜单中选择“Ins ert New Object”→“SIMATIC 300 Station”,插入一个300站。用同样的方法在项目“IE_S7”下插另一个300站,如图所示。

PLC 以太网通讯_第50张图片
2、硬件组态
单击“SIMATIC 300(1)”,双击“Hardware”进入“HW Config”界面。在机架中插入所需的CPU和CP模块
PLC 以太网通讯_第51张图片
“SIMATIC 300(1)”的硬件组态
与ISO传输协议一样,当插入CP模块后,会自动弹出一个“CP 343-1 IT的属性对话框”。新建以太网“Ethernet(1)”,因为要使用ISO传输协议,故选择“Set MAC address/use ISO protocol”,本例中设置该CP模块的MAC地址为08.00.06.71.6D.D0,IP地址为:192.168.1.10,子网掩码:255.255.255.0。
用同样的方法,建立另一个S7-300站,CP模块为CP 343-1,设置CP模块的MAC地址,连接到同一个网络“Ethernet(1)”上。
3、网络参数设置
打开“NetPro”设置网络参数,选中一CPU,点击鼠标右键,选择“In sert New Connection”建立新的连接,在连接类型中,选择“S7 connection”连接
PLC 以太网通讯_第52张图片
选择“S7 connection”连接
点击“OK”,设置连接属性,见图  “General”属性中块参数ID=1,这个参数在后面编程时会用到。
通信双方的其中一个站(本例中为CPU 314C-2DP)为Client端,激活“Establish an active connection”选项;另一个站(本例中为CPU 314C-2PtP)为Server端,在相应属性中不激活。
PLC 以太网通讯_第53张图片
如果选择了“TCP/IP”,站与站之间的连接将使用IP地址进行访问,否则将使用MAC地址进行访问。
“One-way”表示单边通信,如果选择该项,则双边通信的功能块FB12“BSEND”和FB13“BRCV”将不再使用,需要调用FB14“PUT”和FB15“GET”。
设置好后保存编译并下载到各PLC中。

修改设为最佳回复引用 回复 举报 评分
最后回复
个人主页给TA发消息加TA为好友发表于:2011-03-10 16:47:3123楼

4、编写程序
(1)双边通信
由于事先选择了双边通信的方式,故在编程时需要调用FB12“BSEND”和FB13“BRCV”,即通讯双方均需要编程,一端发送,则另外一端必须接受才能完成通信。
FB12“BSEND”和FB13“BRCV”可以在指令库“Libraries”→“SIMATIC_NET_CP”→“CP 300”中可以找到,如图所示

PLC 以太网通讯_第54张图片
指令库
首先发送方(本例中为CPU 314C-2DP)调用FB12“BSEND”,
PLC 以太网通讯_第55张图片
发送方程序
“ID”为网络参数设置时确定,而“R_ID”在编程时由用户自定义,相同的“R_ID”的发送/接受功能块才能正确地传输数据,例如发送方的“R_ID”=1,则接受方的“R_ID”也应设为1。下表所示为功能FB12各个管脚参数说明。
PLC 以太网通讯_第56张图片
另外接收方(本例中为CPU 314C-2PtP)调用FB13“BRCV”,如图所示。
PLC 以太网通讯_第57张图片
功能块FB13的管脚参数说明见表所示。
PLC 以太网通讯_第58张图片
(2)单边通信
此时,S7连接属性中需要设定“One-way”方式,如图所示。
PLC 以太网通讯_第59张图片
当使用“One-way”方式,只需在本地侧的PLC调用FB14“PUT”和FB15“GET”,即可向通信对方发送数据或读取对方的数据。
FB14“PUT”和FB15“GET”同样在指令库“Libraries”→“SIMATIC_NET_CP”→“CP 300”中可以找到,如图所示。
PLC 以太网通讯_第60张图片
先调用FB15进行数据发送,如图所示。
PLC 以太网通讯_第61张图片
接着调用FB14读取对方PLC中的数据,如图所示。
PLC 以太网通讯_第62张图片
功能块FB14“PUT”和FB15“GET”的管脚参数说明分别见下表
PLC 以太网通讯_第63张图片


你可能感兴趣的:(wincc/step7)