s7-1200之间通信
- 格式:doc
- 大小:1.25 MB
- 文档页数:15
西门子 S7-1200 PLC 与 PLC之间以太网通讯操作心得
1.软件组态:新建两个 CPU,在组态界面的网络视图手绘连结两个 PLC 的以太网口,以下:
2.在两个 CPU以太网口的属性中设置 IP 地点,设置同一网段,方便调试;
3.在PLC_1程序块中增添一个背景数据块,新建接收数组跟发送数组,以方便寄存接收或发送数据,例程以下:
4.在 PLC_1主程序中增添一个“经过以太网发送数据”的指令块(发送使能 REQ以下事例是经过 5HZ的频次触发),并点击属性编写,编写好属性后 CONNET自动产生,将背景数据块的填入 DATA地点, LEN
是数据长度,以下:
4.发送指令的属性编写以下(连结数据能够直接点击新建,系统自动产生对应的数据指针,其他能够采纳默认参数)
5.在 PLC_1主程序中增添一个“经过以太网接收数据”的指令块,并点击属性编写,块参数编写同上,以下:
6.发送指令的属性编写同上发送块的属性编写;
7.以相同的编写方式编写 PLC_2;
8.在程序段中操作发送数组数据内容,使用接收数组数据内容,只需硬件连结正常, PLC_1与 PLC_2可经过对应的数组互换数据。
S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU 及以上版本)。
S7-1200 仅支持 S7 单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。
硬件:1.CPU 1214C DC/DC/DC,2.CPU 1214C DC/DC/DC,软件:1.Step7 V13 SP1所完成的通信任务:1.S7-1200 CPU Clinet 将通讯数据区 DB1 块中的 10 个字节的数据发送到 S7-1200 CPU server 的接收数据区 DB1 块中;2.S7-1200 CPU Clinet 将S7-1200 CPU server 发送数据区 DB2 块中的10 个字节的数据读到 S7-1200 CPU Clinet 的接收数据区 DB2 块中。
S7-1200之间 S7 通讯,可以分2种情况来操作,具体如下:1.第一种情况:两个 S7-1200 在一个项目中操作;2.第二种情况:两个 S7-1200 不在一个项目中的操作。
一. 第一种情况(同一项目中操作)使用 STEP 7 V13 在同一个项目中,新建两个S7-1200站点,然后做 S7 通讯。
使用 Step7 V13生成项目使用 STEP7 V13 创建一个新项目,并通过“添加新设备”组态 S7-1200 站client ,选择 CPU1214C DC/DC/DC (client IP:);接着组态另一个S7-1200站 server ,选择 CPU1214C DC/DC/DC (server IP:),如图 1 所示。
图 1 在新项目中插入2个 S7-1200 站点网络配置,组态 S7 连接在“设备组态”中,选择“网络视图”栏进行配置网络,点中左上角的“连接”图标,连接框中选择“S7连接”,然后选中client CPU(客户端),右键选择“添加新的连接”,在创建新连接对话框内,选择连接对象“server CPU”,选择“主动建立连接”后建立新连接,如图 2 所示。
两台S7-1200 PLC之间的TCP通信实例一、 TCP通信协议介绍开放式用户通信是套接字(Socket)通信方式,包含TCP通信。
TCP 属于OSI参考模型的第4层(UDP也位于该层),IP位于第3层。
TCP/IP 通信是面向连接的,提供站点之间的可靠通信,具有回传机制,支持路由功能,可用于西门子SIMATIC系统内部及SIMATIC与PC或其他支持TCP/IP的系统通信。
TCP/IP的通信需要设置本地和远程IP地址,以及与进程相关的端口号(Port Number)。
TIA V16编程软件中关于开放式用户通信指令库的截图如图1所示。
图1 开放式用户通信指令库提示:套接字Socket=(IP地址:端口号),例如(192.168.0.5:80)。
二、两台S7-1200 PLC之间的TCP通信S7-1200 PLC与S7-1200 PLC之间的以太网通信可以通过TCP来实现,这里使用图12-14中的TSEND_C和TRCV_C指令来实现。
通信方式为双边通信,即通信双方都要编写程序,一侧编写发送程序,另一侧则必须编写对应的接收程序。
这里要完成的通信任务有:①将PLC_1的通信数据区DB1中100个字节的数据发送到PLC_2的接收数据区DB2中;②将PLC_2的通信数据区DB1中100个字节的数据发送到PLC_1的接收数据区DB2中。
1.硬件组态使用STEP7 V16创建一个名为“1200_1200_TCP”的新项目,并通过“添加新设备”组态两个型号均为CPU 1214C DC/DC/DC V4.4的1200 PLC站点,分别命名为“PLC_1”和“PLC_2”。
设置“PLC_1”的IP地址为192.168.0.1,“PLC_2”的IP地址为192.168.0.2,子网掩码均为255.255.255.0,设置方法参见12.3.2节相关内容。
勾选“PLC_1”和“PLC_2”的“启用时钟存储器字节”复选框,启用时钟存储器字节MB0。
S7-1200 和 S7-1200 之间 S7 通信S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。
S7-1200 仅支持 S7 单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。
硬件:1.CPU 1214C DC/DC/DC,V2.02.CPU 1214C DC/DC/DC,V4.1软件:1.Step7 V13 SP1所完成的通信任务:1.S7-1200 CPU Clinet 将通讯数据区 DB1 块中的 10 个字节的数据发送到 S7-1200 CPU server 的接收数据区 DB1 块中;2.S7-1200 CPU Clinet 将S7-1200 CPU server 发送数据区 DB2 块中的10 个字节的数据读到 S7-1200 CPU Clinet 的接收数据区 DB2 块中。
S7-1200之间 S7 通讯,可以分2种情况来操作,具体如下:1.第一种情况:两个 S7-1200 在一个项目中操作;2.第二种情况:两个 S7-1200 不在一个项目中的操作。
一. 第一种情况(同一项目中操作)使用 STEP 7 V13 在同一个项目中,新建两个S7-1200站点,然后做 S7 通讯。
1.1 使用 Step7 V13生成项目使用 STEP7 V13 创建一个新项目,并通过“添加新设备”组态 S7-1200 站client V4.1,选择 CPU1214C DC/DC/DC V4.1(client IP:192.168.0.10);接着组态另一个S7-1200站 server v2.0,选择 CPU1214C DC/DC/DC V2.0(server IP:192.168.0.12),如图 1 所示。
图 1 在新项目中插入2个 S7-1200 站点1.2 网络配置,组态 S7 连接在“设备组态”中,选择“网络视图”栏进行配置网络,点中左上角的“连接”图标,连接框中选择“S7连接”,然后选中client v4.1 CPU(客户端),右键选择“添加新的连接”,在创建新连接对话框内,选择连接对象“serverv2.0 CPU”,选择“主动建立连接”后建立新连接,如图 2 所示。
S7-1200 和S7-1200 之间TCP 通信S7-1200 与S7-1200 之间的以太网通信可以通过TCP 协议来实现,使用的通信指令是在双方CPU 调用T-block (TSEND_C,TRCV_C,TCON,TDISCON,TSEND,TRCV) 指令来实现。
通信方式为双边通信,因此TSEND 和TRCV 必须成对出现。
硬件和软件需求及所完成的通信任务硬件:①S7-1200 CPU②PC(带以太网卡)③TP电缆(以太网电缆)软件:STEP7 V11 or Higher所完成的通信任务:①将PLC_1 的通信数据区DB3 块中的100 个字节的数据发送到PLC_2 的接收数据区DB4 块中。
②将PLC_2 的通信数据区DB3 块中的100 个字节的数据发送到PLC_1 的接收数据区DB4 块中。
通信的编程,连接参数及通信参数的配置1. 打开STEP7 v11 软件并新建项目在STEP7 v11的“Portal View” 中选择“Create new project” 创建一个新项目2. 添加硬件并命名PLC然后进入“Project view”,在“Project tree” 下双击“Add new device”,在对话框中选择所使用的S7-1200 CPU添加到机架上,命名为PLC_1,如图1所示。
同样方法再添加通信伙伴的S7-1200 CPU ,命名为PLC_2。
图1. 添加新设备为了编程方便,使用CPU 属性中定义的时钟位,定义方法如下:在“Project tree” > “PLC_1” > “Device configuration” 中,选中CPU ,然后在下面的属性窗口中,“Properties” > “System and clock memory” 下,将系统位定义在MB1,时钟位定义在MB0,如图2所示。
时钟位我们主要使用M0.3,它是以2Hz 的速率在0和1之间切换的一个位,可以使用它去自动激活发送任务。
S7-1200与S7-1200 之间Profinet IO 通信CPU 的"I-Device"(智能设备)功能简化了与IO 控制器的数据交换和CPU 操作过程(如用作子过程的智能预处理单元)。
智能设备可作为IO 设备链接到上位IO 控制器中,预处理过程则由智能设备中的用户程序完成。
集中式或分布式(PROFINET IO 或PROFIBUS DP)I/O 中采集的处理器值由用户程序进行预处理,并提供给IO 控制器。
图1. 网络架构智能设备的应用领域:分布式处理可以将复杂自动化任务划分为较小的单元或子过程,这样简化了子任务的同时也优化了项目管理。
单独的子过程通过使用智能设备,可以将分布广泛的大量复杂过程划分为具有可管理的多个子过程。
必要的话,这些子过程可存储在单个的TIA 项目中,这些项目随后可合并在一起形成一个主项目。
专有技术保护智能设备接口描述使用GSD 文件传输,而不是通过STEP 7 项目传输,这样用户程序的专有技术得以保护。
智能设备的优势:简单链接IO 控制器。
实现IO 控制器之间的实时通信。
通过将计算容量分发到智能设备可减轻IO 控制器的负荷。
由于在局部处理过程数据,从而降低了通信负载。
可以管理单独TIA 项目中子任务的处理。
智能设备可以作为共享设备。
S7-1200 CPU 之间组态智能设备S7-1200 V4.0及以上版本开始支持智能IO 设备功能。
本示例中介绍1200 CPU之间如何进行智能设备PROFINET通信,分别在相同项目和不同项目下进行组态,实验环境如下所示。
软件:TIA V15.1硬件:CPU 1217C DC/DC/DC V4.3CPU 1215C DC/DC/DC V4.3设备角色及地址:S7-1200 智能设备在相同项目下组态STEP 1:创建TIA Portal 项目并进行接口参数配置使用TIA V15.1创建一个新项目,进入网络视图添加表1列出的所有设备,并进入各个设备以太网地址选项分别设置子网、IP地址以及设备名称。
西门子S7-1200 PLC与PLC之间以太网通信操作心得
1.软件组态:新建两个CPU,在组态界面的网络视图手绘连接两个PLC 的以太网口,如下:
2.在两个CPU以太网口的属性中设置IP地址,设置同一网段,方便调试;
3.在PLC_1程序块中添加一个背景数据块,新建接收数组跟发送数组,以方便存放接收或发送数据,例程如下:
4.在PLC_1主程序中添加一个“通过以太网发送数据”的指令块(发送使能REQ以下案例是通过5HZ的频率触发),并点击属性编辑,编辑好属性后CONNET自动产生,将背景数据块的填入DATA位置,LEN 是数据长度,如下:
4.发送指令的属性编辑如下(连接数据可以直接点击新建,系统自动产生对应的数据指针,其余可以采用默认参数)
5.在PLC_1主程序中添加一个“通过以太网接收数据”的指令块,并点击属性编辑,块参数编辑同上,如下:
6.发送指令的属性编辑同上发送块的属性编辑;
7.以同样的编辑方式编辑PLC_2;
8.在程序段中操作发送数组数据内容,使用接收数组数据内容,只要硬件连接正常,PLC_1与PLC_2可通过对应的数组交换数据。
S7-1200 PLC点对点通信一、点对点通信概述S7-1200 PLC支持使用自由口协议的点对点通信。
点对点通信具有很大的自由度和灵活性,可以将信息直接发送给外部设备并接收外部设备的信息。
S7-1200 PLC自由口协议的点对点通信实质是串口通信,通过外插模块可实现232/422/485通信,如CM 1241通信模块和CB 1241通信板。
S7-1200 PLC需要先进行硬件配置,再进行软件程序设计。
案例:CPU 1215C的CB 1241通信板发送十六进制数据“01 02 03 04 05”至上位机(PC),上位机返回十六进制“01 03 05”至CPU 1215C 的CB 1241通信板,通过监控查看数据正确性,以验证程序执行情况。
二、 S7-1200 PLC点对点通信1.新建工程使用STEP7 V16创建一个名为“1200_PTP_RS485”的新项目。
2.添加S7-1200 PLC并硬件组态“添加新设备”组态1个型号为CPU 1215C DC/DC/DC V4.4的1200 PLC站点,命名为“PLC_1”。
3.添加CB 1241(RS485)通信板并硬件组态打开“设备视图”,将右侧硬件目录窗口的文件夹“\通信板\点到点\”中的RS485通信板CB 1241拖放到CPU中间的通信板预留位置。
选中该通信板后,单击下面的巡视窗口的“属性”→“常规”→“IO-Link”,在右侧窗口中设置通信参数,如图12-64所示,波特率为9.6kbit/s,无校验,8位数据位,1位停止位,等待时间可自行根据情况设定,等待时间越长,收发耗时也越长,时间太短,导致通信不稳定或收到错误数据。
图12-64 串行通信参数设置4.新建DB新建两个全局数据块DB1和DB2。
DB1存放发送数据,DB2存放接收数据。
DB均设置为非优化的块访问,这样设置可以避免系统对存储空间进行优化配置,致使无法进行指针访问。
取消优化的块访问后,存储空间为连续空间,通过指针偏移访问、存放数据。
西门子S7-1200 PLC与PLC之间以太网通信操作心得
1.软件组态:新建两个CPU,在组态界面的网络视图手绘连接两个PLC的以太网口,如下:
2.在两个CPU以太网口的属性中设置IP地址,设置同一网段,方便调试;
3.在PLC_1程序块中添加一个背景数据块,新建接收数组跟发送数组,以方便存放接收或发送数据,例程如下:
4.在PLC_1主程序中添加一个“通过以太网发送数据”的指令块(发送使能REQ以下案例是通过5HZ的频率触发),并点击属性编辑,编辑好属性后CONNET自动产生,将背景数据块的填入DATA位置,LEN是数据长度,如下:
4.发送指令的属性编辑如下(连接数据可以直接点击新建,系统自动产生对应的数据指针,其余可以采用默认参数)
5.在PLC_1主程序中添加一个“通过以太网接收数据”的指令块,并点击属性编辑,块参数编辑同上,如下:
6.发送指令的属性编辑同上发送块的属性编辑;
7.以同样的编辑方式编辑PLC_2;
8.在程序段中操作发送数组数据内容,使用接收数组数据内容,只要硬件连接正常,PLC_1与PLC_2可通过对应的数组交换数据。
s7-1200之间通信实验报告
一.通信前的准备
首先创建新项目,并命名为“s7-1200之间通信”,如下图所示:
然后组态设备,选择s7-1200的CPU 1214C DC/DC/RLY,版本号为4.1,如下图所示:
打开项目后,选中PLC_1设备视图,选择下面的“属性”选项,再选择“系统和时钟存储器”,在右边的显示出的启用时钟存储器字节的复选框中打上勾,如下图所示:
再选中PLC_1设备中以太网口,在以太网地址设置PLC_1的IP地址为:192.168.0.1,如下图所示:
然后把PLC_1复制粘贴成PLC_2,同样地在以太网口那里设置PLC_2的IP地址为:192.168.0.2,之前的系统和时钟存储器已经设置好了,PLC_2不用再设了。
具体如下:
在设备视图中转到拓扑视图,分别添加交换机和PC端,并将它们按照下图连接起来。
到这里通信前设备设置已经完成了。
二.程序编程
在PLC_1项目中选择程序块打开main(OB1),在右边的通信项选择“开放式用户通信”中选择“TSEND_C”指令并拖放到main(OB1)中去并生成背景数据块DB1,名称为:TSEND_C_DB。
如下图所示:
选中指令,弹出下面的组态画面,设置如下面所示,在连接类型选择TCP,在连接数据行中,在下拉菜单中选择新建,生成下面所示的画面。
在PLC_1项目中选择程序块打开main(OB1),在右边的通信项选择“开放式用户通信”中选择“TRCV_C”指令并拖放到main(OB1)中去并生成背景数据块DB2,名称为:TRCV_C_DB,如下所示:
选中指令,弹出下面的组态画面,设置如下面所示,在连接类型选择TCP,在连接数据行中,在下拉菜单中选择新建,生成下面所示的画面:
然后添加全局数据块,命名为send,如下图所示:
在打开的全局数据块名称列命名为send,在数据类型选择数组并设置为array[0....99]of string,如下图:
在选中send[DB5]中单击右键选择属性,将打勾的去掉。
如下所示:
接下来关于指令“TSEND_C”的设置如下面所示:
再添加全局数据块,并命名为“receive”,然后在打开里面名称列命名为“receive”,数据类型选择数组并设置为array[0....99]of string,如下图所示:
同样地在receive[DB6]中单击右键选择属性,将打勾的去掉。
如下所示:
关于指令“TRCV_C”的设置如下所示:
到这里PLC_1的编程组态已经完成,关于PLC_2的编程组态设置和PLC_1的设置步骤大同小异,基本的设置如下面所示:
在PLC_2中TSEND_C指令的设置组态如下:
在PLC_2中TRCV_C指令的设置组态如下:
关于指令TSEND_C和TRCV_C设置如下:
到这里PLC_1 和PLC_2的编程组态已经完成了下载测试
将PLC_1的程序下载到PLC中去
将PLC_2的程序下载到PLC中去
在PLC_1和PLC_2中添加监控表,如下图所示:
启动两台PLC并监控,输入名字然后点修改,测试结果如下所示:
到这里,通信成功。
三.总结
通过这次PLC之间通信,动手能力随之加强。
虽然在调试设备的过程中遇到很多问题,但是最后还是通过同学的帮助,把问题给解决了。
感谢老师有这次机会去接触更深层的关于PLC的知识,感谢老师!。