西门子S7-1200与S7-300以太网通信
1.概述

1.1S7-1200的PROFINET通信口
S7-1200CPU本体上集成了一个PROFINET通信口,支持以太网和基于TCP/IP的通信标准。使用这个通信口可以实现S7-1200CPU与编程设备的通信,与hmi触摸屏的通信,以及与其它CPU之间的通信。这个PROFINET物理接口是支持10/100Mb/s的RJ45口,支持电缆交叉自适应,因此一个标准的或是交叉的以太网线都可以用于这个接口。
程控教育学院专业培训PLC编程和工业机器人十余年,授课老师都是做工程项目出身,实战经验丰富,教学通俗易懂,幽默风趣,平易近
人!全程都是随到随学,一对一单独教学,包教包会,免费复学,入学签订培训协议,较大保障学员的学习!
学院开始三菱FX系列3u3G和西门子smart,1200,1500,300,400等课程,另外配套课程有维纶,昆仑通泰,西门子触摸屏,伺服,步
进,变频器,工业网络通讯,模拟量,编码器,二次接线,PLC成套柜制作等等课程!
让每一位学员都能学以致用,亲自动手,毕业等于就业,优秀学员可以推荐就业。

1.2S7-1200支持的协议和最大的连接资源
S7-1200CPU的PROFINET通信口支持以下通信协议及服务
•TCP
•ISOonTCP(RCF1006)
•S7通信(服务器端)
通信口所支持的最大通信连接数
S7-1200CPUPROFINET通信口所支持的最大通信连接数如下:
•3个连接用于HMI(触摸屏)与CPU的通信
•1个连接用于编程设备(PG)与CPU的通信
•8个连接用于OpenIE(TCP,ISOonTCP)的编程通信,使用T-block指令来实现
•3个连接用于S7通信的服务器端连接,可以实现与S7-200,S7-300以及S7-400的以太网S7通信
S7-1200CPU可以同时支持以上15个通信连接,这些连接数是固定不变的,不能自定义。
TCP(TransportConnectionProtocol)
TCP是由RFC793描述的标准协议,可以在通信对象间建立稳定、安全的服务连接。如果数据用TCP协议来传输,传输的形式是数据流,没有传输长度及信息帧的起始、结束信息。在以数据流的方式传输时接收方不知道一条信息的结束和下一条信息的开始。因此,发送方必须确定信息的结构让接收方能够识别。在多数情况下TCP应用了IP(Internetprotocol),也就是“TCP/IP协议”,它位于ISO-OSI参考模型的第四层。协议的特点:
•与硬件绑定的高效通信协议
•适合传输中等到大量的数据(=8192bytes)
•为大多数设备应用提供
–错误恢复
–流控制
–可靠性
•一个基于连接的协议
•可以灵活的与支持TCP协议的第三方设备通信
•具有路由兼容性
•只可使用静态数据长度
•有确认机制
•使用端口号进行应用寻址
•大多数应用协议,如TELNET、FTP都使用TCP
•使用SEND/RECEIVE编程接口进行数据管理需要编程来实现
1.3硬件需求和软件需求
硬件:
①S7-1200CPU
②S7-300CPU+CP343-1(支持S7Client)
③PC(带以太网卡)
④TP以太网电缆
软件:
①
②
2.ISOonTCP通信
S7-1200CPU与S7-300/400之间通过ISOonTCP通信,需要在双方都建立连接,连接对象选择“Unspecified”。
所完成的通信任务为:
①S7-1200将DB3里的100个字节发送到S7-300的DB2中
②S7-300将输入数据IB0发送给S7-1200的输出数据区QB0。
2.1S7-1200CPU的组态编程
组态编程过程与S7-1200CPU之间的通信基本相似(见6.3),这里简单描述一下步骤:
①使用软件新建一个项目
在STEP7Basic的“PortalView”中选择“Createnewproject”创建一个新项目
②添加新设备
然后进入“Projectview”,在“Projecttree”下双击“Addnewdevice”,在对话框中选择所使用的S7-1200CPU添加到机架上,命名为plc_1。
③为PROFINET通信口分配以太网地址
④在S7-1200CPU中调用“TSEND_C”通信指令并配置连接参数和块参数
在主程序中调用发送通信指令,进入“Projecttree”“PLC_1”“Programblocks”“Main”主程序中,从右侧窗口“Instructions”“ExtedInstructions”“Communications”下调用“TSEND_C”指令,并选择“SingleInstance”生成背景DB块。然后单击指令块下方的“下箭头”,使指令展开显示所有接口参数。
根据所使用的参数创建符号表,如图1所示。
配置连接参数,如图2所示。
配置块接口参数,如图3所示。

图1创建所使用参数的符号表图PLCtag

图2配置连接参数

图3配置TSEND_C块参数
⑤调用“TRCV”通信指令并配置块参数如图647所示。
因为与发送使用的是同一连接,所以使用的是不带连接的发送指令“TRCV”,连接“ID”使用的也是“TSEND_C”中的“ConnectionID”号,如图4所示。

图4配置T_RCV块参数
2.2S7-300CPU的ISOonTCP通信的组态编程
①使用STEP7软件新建一个项目并进行硬件组态
创建完新项目,在项目的窗口下,右键菜单里,选择“InsertNewObject”“SIMATIC300Station”,插入一个S7-300站。
为了编程方便,我们使用时钟脉冲激活通信任务,在CPU的“Properties”>“Cycle/ClockMemory”中设置,如图5所示。

图5设置时钟脉冲
每一个时钟位都按照不同的周期/频率在0和1之间切换变化,见表1。
表1:时钟位频率
位
7
6
5
4
3
2
1
0
周期(S)
2
01.Jun
1
0.8
0.5
0.4
0.2
0.1
频率(Hz)
0.5
0.625
1
Jan25
2
02.Mai
5
10
②配置以太网模块
进入“HWConfig”中,组态所使用的CPU及“CP343-1”模板。并新建以态网Ethernet(1),配置“CP343-1”模板IP地址为:192.168.0.2,子网掩码为:255.255.255.0。如图6所示。配置完硬件组态及属性,编译存盘并下载所有硬件组态。

图6S7-300硬件配置
③网络组态
打开“NetPro”配置网络,选中CPU,在连接列表里建立新的连接并选择连接对象和通信协议,如图7所示。

图7创建新的连接并选择ISO-on-TCP协议
这时会跳出通用信息,如图8所示。

图8通用信息
然后,进入“Addresses”配置通信双方的IP地址及TSAP地址,如图9所示。

图9配置通信的IP地址及TSAP地址
配置完连接并编译存盘后,将网络组态下载到CPU300中。
④软件编程
在OB1中,从“Libraries”“SIMATIC_NET_CP”“CP300”下,调用FC5(AG_SEND)、FC6(AG_RECV)通信指令。创建接收数据区为DB2,定义成100个字节的数组。
CALL“AG_RECV”//调用FC6
ID:=1//连接号,要与连接配置列表中一致,见图8
LADDR:=W100//CP的地址,要与配置中一致,见图8
RECV:=P161111_1111”写入IB0,则在S7-1200CPU中QB0中收到的数据也为“2#1111_1111”。

图10S7-1200监控表

图11S7-300变量表
3.TCP通信
使用TCP协议通信,除了连接参数的定义不同,通信双方的其它组态及编程与前面的ISOonTCP协议通信完全相同。
S7-1200CPU中,使用TCP协议与S7-300通信时,PLC_1的连接参数,如图12所示。通信伙伴S7-300的连接参数,如图13所示。

图12S7-1200的TCP连接参数的配置

图13S7-300的TCP连接参数的配置
1.概述
1.1S7-1200的PROFINET通信口
S7-1200CPU本体上集成了一个PROFINET通信口,支持以太网和基于TCP/IP的通信标准。使用这个通信口可以实现S7-1200CPU与编程设备的通信,与hmi触摸屏的通信,以及与其它CPU之间的通信。这个PROFINET物理接口是支持10/100Mb/s的RJ45口,支持电缆交叉自适应,因此一个标准的或是交叉的以太网线都可以用于这个接口。
1.2S7-1200支持的协议和最大的连接资源
S7-1200CPU的PROFINET通信口支持以下通信协议及服务
•TCP
•ISOonTCP(RCF1006)
•S7通信(服务器端)
通信口所支持的最大通信连接数
S7-1200CPUPROFINET通信口所支持的最大通信连接数如下:
•3个连接用于HMI(触摸屏)与CPU的通信
•1个连接用于编程设备(PG)与CPU的通信
•8个连接用于OpenIE(TCP,ISOonTCP)的编程通信,使用T-block指令来实现
•3个连接用于S7通信的服务器端连接,可以实现与S7-200,S7-300以及S7-400的以太网S7通信
S7-1200CPU可以同时支持以上15个通信连接,这些连接数是固定不变的,不能自定义。
TCP(TransportConnectionProtocol)
TCP是由RFC793描述的标准协议,可以在通信对象间建立稳定、安全的服务连接。如果数据用TCP协议来传输,传输的形式是数据流,没有传输长度及信息帧的起始、结束信息。在以数据流的方式传输时接收方不知道一条信息的结束和下一条信息的开始。因此,发送方必须确定信息的结构让接收方能够识别。在多数情况下TCP应用了IP(Internetprotocol),也就是“TCP/IP协议”,它位于ISO-OSI参考模型的第四层。
协议的特点:
•与硬件绑定的高效通信协议
•适合传输中等到大量的数据(=8192bytes)
•为大多数设备应用提供
–错误恢复
–流控制
–可靠性
•一个基于连接的协议
•可以灵活的与支持TCP协议的第三方设备通信
•具有路由兼容性
•只可使用静态数据长度
•有确认机制
•使用端口号进行应用寻址
•大多数应用协议,如TELNET、FTP都使用TCP
•使用SEND/RECEIVE编程接口进行数据管理需要编程来实现
1.3硬件需求和软件需求
硬件:
①S7-1200CPU
②S7-300CPU+CP343-1(支持S7Client)
③PC(带以太网卡)
④TP以太网电缆
软件:
①
②
2.ISOonTCP通信
S7-1200CPU与S7-300/400之间通过ISOonTCP通信,需要在双方都建立连接,连接对象选择“Unspecified”。
所完成的通信任务为:
①S7-1200将DB3里的100个字节发送到S7-300的DB2中
②S7-300将输入数据IB0发送给S7-1200的输出数据区QB0。
2.1S7-1200CPU的组态编程
组态编程过程与S7-1200CPU之间的通信基本相似(见6.3),这里简单描述一下步骤:
①使用软件新建一个项目
在STEP7Basic的“PortalView”中选择“Createnewproject”创建一个新项目
②添加新设备
然后进入“Projectview”,在“Projecttree”下双击“Addnewdevice”,在对话框中选择所使用的S7-1200CPU添加到机架上,命名为plc_1。
③为PROFINET通信口分配以太网地址
④在S7-1200CPU中调用“TSEND_C”通信指令并配置连接参数和块参数
在主程序中调用发送通信指令,进入“Projecttree”“PLC_1”“Programblocks”“Main”主程序中,从右侧窗口“Instructions”“ExtedInstructions”“Communications”下调用“TSEND_C”指令,并选择“SingleInstance”生成背景DB块。然后单击指令块下方的“下箭头”,使指令展开显示所有接口参数。
根据所使用的参数创建符号表,如图1所示。
配置连接参数,如图2所示。
配置块接口参数,如图3所示。

图1创建所使用参数的符号表图PLCtag

图2配置连接参数

图3配置TSEND_C块参数
⑤调用“TRCV”通信指令并配置块参数如图647所示。
因为与发送使用的是同一连接,所以使用的是不带连接的发送指令“TRCV”,连接“ID”使用的也是“TSEND_C”中的“ConnectionID”号,如图4所示。
图4配置T_RCV块参数
2.2S7-300CPU的ISOonTCP通信的组态编程
①使用STEP7软件新建一个项目并进行硬件组态
创建完新项目,在项目的窗口下,右键菜单里,选择“InsertNewObject”“SIMATIC300Station”,插入一个S7-300站。
为了编程方便,我们使用时钟脉冲激活通信任务,在CPU的“Properties”>“Cycle/ClockMemory”中设置,如图5所示。
图5设置时钟脉冲
每一个时钟位都按照不同的周期/频率在0和1之间切换变化,见表1。
表1:时钟位频率
位
7
6
5
4
3
2
1
0
周期(S)
2
01.Jun
1
0.8
0.5
0.4
0.2
0.1
频率(Hz)
0.5
0.625
1
Jan25
2
02.Mai
5
10
②配置以太网模块
进入“HWConfig”中,组态所使用的CPU及“CP343-1”模板。并新建以态网Ethernet(1),配置“CP343-1”模板IP地址为:192.168.0.2,子网掩码为:255.255.255.0。如图6所示。配置完硬件组态及属性,编译存盘并下载所有硬件组态。
免责声明:本文系网络转载或改编,版权归原作者所有!