C#使用S7.net连接西门子S1200PLC,C#直接连接西门子PLC |
您所在的位置:网站首页 › slot怎么读 › C#使用S7.net连接西门子S1200PLC,C#直接连接西门子PLC |
距离上一篇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 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |