西门子S7-1200之间以太网通信


西门子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并监控,输入名字然后点修改,测试结果如下所示:

 

 

到这里,通信成功。