![51ee922cefdad11b6050c984dd8d6809.png](https://i-blog.csdnimg.cn/blog_migrate/93baba31aa48c65589211cf3142a6fff.jpeg)
据某份数据不完全统计,目前中国市场十大国际PLC品牌如下(避免争议,排名不分先后):
西门子、施耐德、欧姆龙、三菱、罗克韦尔、松下、ABB、倍福、艾默生、GE
再盘点一下中国市场十大国内PLC品牌:
和利时、台达、汇川、信捷、永宏、丰炜、南大傲拓、厦门海为、黄石科威、上海正航
当代电气工程师之所以这么厉害(Ku Bi),很大一部分原因就是PLC品牌太多了,终其一生,可能学不完所有。
以上均为有感而发,不作为今天的主题,今天的主题主要是跟大家介绍一下,如何站在电气工程师的角度上,实现C#/.NET与西门子PLC之间的通信。
1、准备工作
如果想实现C#/.NET与西门子PLC之间的通信,首先要对西门子PLC有一定的了解,西门子PLC目前市场上主要使用的PLC型号包括:S7-200、S7-200Smart、S7-300、S7-400、S7-1200、S7-1500,西门子PLC的主要存储区包括V区(在通信协议里V区即DB1)、M区、I区、Q区、DB区,其他的C区和T区,由于用得比较少,而且可以通过程序中转,暂不涉及。
对于西门子PLC,如果手头没有PLC,可以通过仿真的方式搭建环境,参考下方链接:
基于S7-PLCSIM Advanced搭建S7通信仿真环境mp.weixin.qq.com需要注意以下几个地方:
(1)PLC配置中,必须勾选允许来自远程对象的PUT/GET通信访问。
![0857221878b7280c961f5263f822bdc7.png](https://i-blog.csdnimg.cn/blog_migrate/f4b55df3650c5161d55d29c8b7742641.png)
(2)如果需要访问DB块,必须将DB块属性中的优化的块访问勾选去除。