赞
踩
距离上一篇C#使用KepService连接已经好久了,这次把S7.net的更新上来。在此鸣谢一下(李,罗,任。)
附上github链接:https://github.com/S7NetPlus/s7netplus/wiki
第一步,首先把西门子PLC端配置好,如下图。这个很重要,后面编码都会依据这个,也就是说想要C#做读做写那么PLC部分要先规划好。
这个是DB1块的。
这个是DB3块的。
上面步骤不懂请自行学习PLC相关知识。
二、添加S7.NET引用。
安装完成后我们开始正题。
CpuType:PLC的cpu型号。我这里是1200。
IP:PLC的IP地址。
rack:机台号的位置,这个也是PLC的知识点。
slot:插槽号的位置,也是PLC的知识点。
使用这个属性来判别是否连接成功。
三、读取数据。
Read方式读取。直接根据DB1.DBX.0.0地址读取
列如:myplc.read("DB1.DBX.0.0");
将会返回一个obj的类型数据。我们需要根据PLC内不同数据类型去转换。就可以读取到相应的值
Read还有一个按偏移量去读取的,可以批量连续读取相同数据类型的,我这里的案例就只读一个出来,为了演示而已。
DataType:数据存储的位置类型。这里我是固定的选着DB块类型。
DB:第几个DB块。
startByteAdr:开始的偏移量位置。
varType:数据的类型。
carCount:结束的偏移量位置
ReadBytes方式读取根据偏移量去读取,可以是不同数据读取上来
DataType:数据存储的位置类型。这里我是固定的选着DB块类型。
DB:第几个DB块。
startByteAdr:开始的偏移量位置。
count:结束的偏移量位置,也可以理解读取多少个位数据上来。
ReadClass按照类的方式读取。
首先我们要根据上面的PLC去建立类
这个是根据DB3建立的类
然后我们使用方法读取
sourceClass:要读取的类。
DB:哪个db块
ReadStruct读取,使用结构去读取
和类一样,我们要根据PLC去建立结构
这个是根据DB1块建立的结构体
structType:结构体。
db:哪个db快。
四、写入数据。
Write写入。单个数据写入
variable:PLC具体写入块名称(例如:DB1.DBX0.0)
value:写入的值
还有按偏移量写入的就不演示了,具体看案例。
WriteBytes方式写入。
DataType:数据存储的位置类型。这里我是固定的选着DB块类型。
DB:第几个DB块。
startByteAdr:开始的偏移量位置。
value:要写入的byte数组。
WriteClassAsync 使用类方式写入数据
类写入的情况一样我们要用到刚刚建立的类,然后给类赋值,这里使用DB3块做样例。
classValue:类的值。
db:第几个db块。
WriteStructAsync 使用结构方式写入数据
structValuue:结构体。
db:第几个db块。
源码已上传,有需要可以下载,也可以联系我留下邮箱发送。
https://download.csdn.net/download/weixin_38801976/18416486?spm=1001.2014.3001.5503
----------------小尾巴分割----------------------------------------
菜鸟的记录也是进步~如果对你有所帮助,那就点赞一下吧。-----来自没有代码的程序员小萝卜
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。