![33fd5f33ad3dc5cff0a94ffe508c6463.png](https://i-blog.csdnimg.cn/blog_migrate/6e68cb3d54d8584547c75a6091635747.png)
西门子S7-1200之间以太网通信
一.通信前的准备
首先创建新项目,并命名为“s7-1200之间通信”,如下图所示:
![7e59b180f7ce2770f9831c1fa4747128.png](https://i-blog.csdnimg.cn/blog_migrate/da1b3ef660c69143429d17fa4dbba1d4.png)
然后组态设备,选择s7-1200的CPU 1214C DC/DC/RLY,版本号为4.1,如下图所示:
![caa8c67a01163711a80f040e4e0a1d4d.png](https://i-blog.csdnimg.cn/blog_migrate/34f442b9838a452ec0181dac1bc408c8.png)
打开项目后,选中PLC_1设备视图,选择下面的“属性”选项,再选择“系统和时钟存储器”,在右边的显示出的启用时钟存储器字节的复选框中打上勾,如下图所示:
![56671fd852ac692f092fb8cecd24050d.png](https://i-blog.csdnimg.cn/blog_migrate/670388c6a277d606797dc9da9623088a.png)
再选中PLC_1设备中以太网口,在以太网地址设置PLC_1的IP地址为:192.168.0.1,如下图所示:
![f5bb006a78d79d2e2e4fc8259958615d.png](https://i-blog.csdnimg.cn/blog_migrate/04ebff9351dcf46fe7db827e049405fe.png)
然后把PLC_1复制粘贴成PLC_2,同样地在以太网口那里设置PLC_2的IP地址为:192.168.0.2,之前的系统和时钟存储器已经设置好了,PLC_2不用再设了。具体如下:
![6f52fe5b9bc2a24367757610ad85fd84.png](https://i-blog.csdnimg.cn/blog_migrate/8baf176379ce1f3ca36912613fd0a5c3.png)
在设备视图中转到拓扑视图,分别添加交换机和PC端,并将它们按照下图连接起来。
![6c67cdd088a7af394433c78f06b17f8c.png](https://i-blog.csdnimg.cn/blog_migrate/557bb4ebb3f87fe877c9b19fb4fb0753.png)
到这里通信前设备设置已经完成了。
二.程序编程
在PLC_1项目中选择程序块打开main(OB1),在右边的通信项选择“开放式用户通信”中选择“TSEND_C”指令并拖放到main(OB1)中去并生成背景数据块DB1,名称为:TSEND_C_DB。如下图所示:
![bee0df73d5ed34edc5fc4f782230e0eb.png](https://i-blog.csdnimg.cn/blog_migrate/e5d36729db1bfeae9081741ae0693478.png)
选中指令,弹出下面的组态画面,设置如下面所示,在连接类型选择TCP,在连接数据行中,在下拉菜单中选择新建,生成下面所示的画面。
![11a672967cb8a54d642cfedeb491ac92.png](https://i-blog.csdnimg.cn/blog_migrate/940bbe990d1df54b9cc4ad75a663d257.png)
在PLC_1项目中选择程序块打开main(OB1),在右边的通信项选择“开放式用户通信”中选择“TRCV_C”指令并拖放到main(OB1)中去并生成背景数据块DB2,名称为:TRCV_C_DB,如下所示:
![1b20d145038c265ea13793098cfc66fc.png](https://i-blog.csdnimg.cn/blog_migrate/eb00bd84e9deb4da6f9cf5118a614541.png)
选中指令,弹出下面的组态画面,设置如下面所示,在连接类型选择TCP,在连接数据行中,在下拉菜单中选择新建,生成下面所示的画面:
![2bfd8d2a9a71de1a7f186181590bb5f6.png](https://i-blog.csdnimg.cn/blog_migrate/1cd577b0d14a84c42b8c3abff38f19b1.png)
然后添加全局数据块,命名为send,如下图所示:
![71d42d5a9e87c8571adce13e7062aaa7.png](https://i-blog.csdnimg.cn/blog_migrate/8353495351402cdaf3de0e0da221077c.png)
在打开的全局数据块名称列命名为send,在数据类型选择数组并设置为array[0....99]of string,如下图:
![37f4f23783ae7a0cbbeaca238cbd83cd.png](https://i-blog.csdnimg.cn/blog_migrate/e00663ce757e9c7b43db41a5645c6182.png)
在选中send[DB5]中单击右键选择属性,将打勾的去掉。如下所示:
![d56d1210a361a79e2d567599a2ec0da0.png](https://i-blog.csdnimg.cn/blog_migrate/ecc890973c1c45f854e07ec1d7833314.png)
接下来关于指令“TSEND_C”的设置如下面所示:
![264a2e2793343078b3d549b56f96a207.png](https://i-blog.csdnimg.cn/blog_migrate/42e405daa6b089a5e62164895a203257.png)
再添加全局数据块,并命名为“receive”,然后在打开里面名称列命名为“receive”,数据类型选择数组并设置为array[0....99]of string,如下图所示:
![2e7819c7d88a13c8a1f26bc9ea767350.png](https://i-blog.csdnimg.cn/blog_migrate/93227be6438ce4ea06369938943b489e.png)
同样地在receive[DB6]中单击右键选择属性,将打勾的去掉。如下所示:
![af739bce79e1f17d4e119432999b0e83.png](https://i-blog.csdnimg.cn/blog_migrate/84e29a21e07dcdd9c4bf66e3b8153df6.png)
关于指令“TRCV_C”的设置如下所示:
![3c466ecc166101ece5b5ad2d8b4b156d.png](https://i-blog.csdnimg.cn/blog_migrate/fac06a04989e1cdb2d2c18b5ce920f83.png)
到这里PLC_1的编程组态已经完成,关于PLC_2的编程组态设置和PLC_1的设置步骤大同小异,基本的设置如下面所示:
在PLC_2中TSEND_C指令的设置组态如下:
![42cc5b8e26ee9ffe279c2802478bf96f.png](https://i-blog.csdnimg.cn/blog_migrate/eb087d82c6eaa748f44f657a3ea8e702.png)
在PLC_2中TRCV_C指令的设置组态如下:
![d5e98953ff020be697707a64efdf8585.png](https://i-blog.csdnimg.cn/blog_migrate/540b79520e0e043ad158a53b7cac6120.png)
关于指令TSEND_C和TRCV_C设置如下:
![8b85fcf046606b2d82968425932a8a54.png](https://i-blog.csdnimg.cn/blog_migrate/39a0d6e0ba407861405f9cf6d996c740.png)
![1a7abff8df6847c80ae004643ce888f7.png](https://i-blog.csdnimg.cn/blog_migrate/7b4fb681c356012c959e1a1aebe7d8e7.png)
到这里PLC_1 和PLC_2的编程组态已经完成了
下载测试
将PLC_1的程序下载到PLC中去
![5c42bbf98d30652b45e717669938bbd7.png](https://i-blog.csdnimg.cn/blog_migrate/8db09fff019f411c07eceec150ffe4e3.png)
![f188ecb53cb9246d96311ba4a1f103b2.png](https://i-blog.csdnimg.cn/blog_migrate/547608c3a3d6c8b67c74ea80d89b6f52.png)
将PLC_2的程序下载到PLC中去
![6402151886e062c119b87e7634ef74aa.png](https://i-blog.csdnimg.cn/blog_migrate/573df36dcbecacb33cc87921f7f0cdf9.png)
![1e850d01c17fb1e38e3905d7a088483e.png](https://i-blog.csdnimg.cn/blog_migrate/85c898b7bd4d8d98853b19d5ab4406b5.png)
在PLC_1和PLC_2中添加监控表,如下图所示:
![2750721b2c23626fe8abb09b30b5d04e.png](https://i-blog.csdnimg.cn/blog_migrate/16c0e2aafced37d70ae7f525dc1c4e2c.png)
![da538b2bdf2d21f72cfb7903086a4e3c.png](https://i-blog.csdnimg.cn/blog_migrate/ce00e57fdebfd8ea9abf92a9a6d84964.png)
启动两台PLC并监控,输入名字然后点修改,测试结果如下所示:
![97fb19cdcb6b2f311a6a6202dea28b15.png](https://i-blog.csdnimg.cn/blog_migrate/9246eb7fb79065a14bf94ec1f8e369c7.jpeg)
到这里,通信成功。