C#与西门子PLC通信完整实例

2022-02-16 浏览次数:1014

据某份数据信息不彻底统计分析,现阶段我国市场国际性PLC**品牌如下所示(防止异议,排名不分先后):

西门子、德力西、欧姆龙、三菱、罗克韦尔、康佳、ABB、倍福、艾默生、GE

再汇总一下我国市场中国PLC**品牌:

和利时、伺服、汇川、信捷、永宏、丰炜、南大傲拓、深圳海为、黄石市科威、上海市正航

当今机电工程师往往那么强大(Ku Bi),非常大一部分缘故便是PLC**品牌太多了,终其一生,很有可能无从下手全部。

以上均为感慨万千,不当作今日的主题风格,今日的主体主要是跟大伙儿介绍一下,怎样立在机电工程师的方向上,完成C#/.NET与西门子PLC中间的通讯。

1、准备工作

假如想完成C#/.NET与西门子PLC中间的通讯,较先要对西门子PLC有一定的掌握,西门子PLC现阶段市面上关键采用的PLC型号规格包含:S7-200、S7-200S ** rt、S7-300、S7-400、S7-1200、S7-1500,西门子PLC的关键储存区包含V区(在通讯协议里V区即DB1)、M区、I区、Q区、DB区,别的的C区和T区,因为用得非常少,并且可以根据程序流程转站,暂不涉及到。

针对西门子PLC,假如手头上没有PLC,可以根据模拟仿真的方法构建自然环境,参照下边连接:

根据S7-PLCSIM Advanced构建S7通讯模拟仿真自然环境

必须留意下述好多个地区:

(1)PLC配备中,务必启用容许来源于远程控制目标的PUT/GET通 ** 问。

容许Put Get浏览

(2)假如必须浏览DB块,务必将DB块特性中的改进的块浏览启用除去。

DB块去提升浏览

(3)如果是根据PLCSIM-Advanced构建的模拟仿真自然环境,务必将全部解决方法的特性中,维护栏里的块编译程序时适用模拟仿真启用上。

块编译程序适用模拟仿真

(4)针对读取的详细地址,一定如果PLC中具有的详细地址:

以M储存区为例子,一般M区较大字节数是8192个,因此假如你读取MD9000,一定是读不上的。

以DB储存区为例子,假如你并未建立DB1,你读取DB1.DBD0,一定也是读不上的。

以DB储存区为例子,假如你DB1仅有200个字节数范畴,你读取DB1.DBD200,也是读不上的。

只需遵循以上四个标准,西门子PLC通讯通常就不会有硬件配置或是配备上的问题了。

2、PLC基本通讯

这节中提及的基本通讯,关键就是指对于PLC的详细地址开展单独或是好几个持续的开展读取及写入,下边立即运用刚构建好的模拟仿真自然环境来做检测,自然,应用具体PLC也是完全没问题的。前提条件先将博中途的DB1.DBD0、DB1.DBD4、DB1.DBD8、DB1.DBD12各自改成1.2、3.4、5.6、7.8:

DB1变量标值DB1字符串数组数据信息单独变量的读取

根据C#读取通讯库xktComm.dll(Nuget检索xktComm安装下载),完成对PLC单独变量的读取,结果如下图所示:

表明:西门子PLC通讯只必须IP地址和CPU种类就可以,不用端口,由于S7协议书的端口是数值102,往往要挑选CPU种类,是由于不一样规格的CPU,握手报文格式是不一样的。

PLC单独读取PLC单个字符串数组读取

(2)单独变量的写入:

针对单独变量的写入,也特别便捷,立即键入详细地址、种类及写入值就可以,下边各自将这4个详细地址写入1.0、2.0、3.0、4.0,结果如下图所示:

PLC单独写入PLC单个字符串数组写入

(3)好几个变量的读取:

针对好几个变量的读取,必须填好读取长短,下边根据将读取长短改成4,一次性将DB1.DB0-DB1.DBD12读取出去,结果如下图所示:

PLC好几个读取

(4)多个变量的写入:

针对好几个变量的写入,则不用填好读取长短,立即在写入标值中,用空格符隔开,写入相对应的标值,下边以将DB1.DBD0-DB1.DBD12改成1.2、3.4、5.6、7.8为例子,将写入标值改成1.2 3.4 5.6 7.8,结果如下图所示:

PLC好几个写入3、PLC高级通讯

假如PLC基本通讯就能达到我们的新项目要求得话,那麽PLC高级通讯一定可以让大伙儿惊喜万分。

PLC高级通讯关键运用场所是针对好几个不持续的储存区或是好几个不持续的变量开展一次性读取和写入,这一点,好像仅有西门子S7协议书适用,别的**品牌PLC均不兼容。

好几个不持续变量读取

在下面的图中,联接上PLC后,根据键入变量详细地址及变量种类,随后点一下加上至读取区,会将要想读取的变量载入到右侧的读取区中,读取区以JSON方式开展表明,右边表明用时时间,加上进行后,根据点一下读取数据信息,会将要想读取的数据展示在日志框中,这种变量是可以不持续的变量。

下边以读取MD10、MD100、MD200、DB1.DBD0、DB1.DBD8为例子,开展检测,测试结果如下图所示:

PLC多变量与此同时读取PLC监管表

(2)写入个不持续变量读取

在图中读取的根基上,各自将MD10、MD100、MD200、DB1.DBD0、DB1.DBD8写入1.0 2.0 3.0 4.0 5.0,依然选用一样的方法,填好写入的变量详细地址、变量种类及写入值,点一下加上至写入区,较终点一下写入数据信息,分辨是不是可以将这种数据信息与此同时写入,检测结果如下图所示:

PLC多变量与此同时写入PLC多变量写入结果比照

根据写入意见反馈及PLC数据对比,评测可以一次将好几个变量与此同时写入PLC,根据分辨用时仅11ms,表明是一次报文格式写入的,PLC高级通讯的有效运用会进一步提高上位机软件的通讯高效率。

4、总体汇总

文中主要是对于C#与西门子PLC通讯干了比较详尽的叙述,坚信针对许多机电工程师,尤其是以西门子PLC为主导的机电工程师而言,会出现非常大协助。近些年伴随着人工智能技术、物联网技术的步骤,工业自动化领域发生了较大的转变,每一位机电工程师都应当立即做出调节,较少学习培训一门高级计算机语言,防患于未然,以更快的状态来面对即将来临的智能制造系统2025。



susan66.b2b168.com/m/
联系我们

在线客服: 1029271689

联系人:陈经理

联系电话: 13787798297