C#读写三菱PLC数据使用TCPIP协议.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C#读读写写三三菱菱PLC数数据据使使⽤⽤TCPIP协协议议 本⽂将使⽤⼀个Github开源的组件库技术来读写三菱PLC和西门⼦plc数据,使⽤的是基 以太⽹的TCP/IP实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线 程,本组件⽀持超级⽅便的⾼性能读写操作 github地址: 如果喜欢可以star或是fork,还可以打赏⽀持,打赏请认准源代码项⽬。 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输⼊下⾯的指令安装: 1Install-Package slCommunication 如果需要教程:Nuget安装教程: 联系作者及加群⽅式 (激活码在群⾥发放): 组件的完整信息和A PI介绍参照: 组件的使⽤限制,更新⽇志,都在该页⾯⾥⾯。 如果你需要在读取PLC数据之后,还要群发客户端来实现远程办公室同步监视,可以参考如下的项⽬ (基 该组件扩展起来的,带有账户验证,版本控制,数据群发,公告管理 等等功能) 本⽂将展⽰如何配置⽹络参数及怎样使⽤代码来访问PLC数据,希望给有需要的⼈解决⼀些实际问题。主要对三菱Q系列PLC的X ,Y ,M,L,B,V ,F,S,D,W ,R区域的 数据读写,对西门⼦PLC的M,Q,I,DB块的数据读写,亲测有效。 此处使⽤了⽹线直接的⽅式,如果PLC接进了局域⽹,就可以进⾏远程读写了^_^ 此处使⽤到了2个命名空间: 1using slCommunication; 2using slCommunication.Profinet ; 随随便便聊聊聊聊 当我们⼀个上位机需要读取100台西门⼦PLC设备 (此处只是举个例⼦,凡是都是使⽤Modbus tcp的都是⼀样的)的时候,你采⽤服务器主动去请求100台设备的机制对性能来说 是个极⼤的考验,如果开100个线程去轮询100台设备,那么性能损失将是⾮常⼤的,更不⽤说再增加设备,如果搭建Modbus tcp服务器,就可以完美的解决性能问题,因为连接 的压⼒将会平均分摊给每⼀台PLC ,服务器端只要新增⼀个时间戳就可以知道客户端有没有连接上。 我们在100台PLC⾥都增加发送Modbus tcp⽅法,将数据发送到服务器的ip和端⼝上去,服务器根据站号来区分设备。这样就可以搭建⼀个⾼性能总站。 本组件⽀持快速搭建⼀ 个⾼性能的Modbus tcp总站。 关 两种模式 在PLC端,包括三菱,西门⼦,欧姆龙以及Modbus Tcp客户端的访问器上,都⽀持两种模式,短连接模式和长连接模式,现在就来解释下什么原理。 短连接:每次读写都是⼀个单独的请求,请求完毕也就关闭了,如果服务器的端⼝仅仅⽀持单连接,那么关闭后这个端⼝可以被其他连接复⽤,但是在频繁的⽹络请求下,容易 发⽣异常,会有其他的请求不成功,尤其是多线程的情况下。 长连接:创建⼀个公⽤的连接通道,所有的读写请求都利⽤这个通道来完成,这样的话,读写性能更快速,即时多线程调⽤也不会影响,内部有同步机制。如果服务器的端⼝仅 仅⽀持单连接,那么这个端⼝就被占⽤了,⽐如三菱的端⼝机制,西门⼦的Modbus tcp端⼝机制也是这样的。以下代码默认使⽤长连接,性能更⾼,还⽀持多线程同步。 在短连接的模式下,每次请求都是单独的访问,所以没有重连的困扰,在长连接的模式下,如果本次请求失败了,在下次请求的时候,会⾃动重新连接服务器,直到请求成功为 ⽌。另外,尽量所有的读写都对结果的成功进⾏判断。 关 ⽇志记录 不管是三菱的数据访问类,还是西门⼦的,还是Modbus tcp访问类,都有⼀个LogNet属性⽤来记录⽇志,该属性是⼀个接⼝类,ILogNet,凡事继承该接⼝的都可以⽤来记录⽇ 志,该⽇志会在访问失败时,尤其是因为⽹络的原因导致访问失败时会进⾏⽇志记录 (如果你为这个 LogNet 属性配置了真实的⽇志记录器的话):如果你想使⽤该记录⽇志的 功能,请参照如下的博客进⾏实例化: 访访问问测测试试项项⽬⽬ 下⾯的⼀个项⽬是这个组件的访问测试项⽬,您可以进⾏初步的访问的测试,免去了您写测试程序的⿇烦,三菱的界⾯和西门⼦的界⾯⼏乎是⼀致的。可以同时参考。该项⽬位 本篇⽂章开始处的Gitbub源代码⾥⾯的 下载地址为: 演演⽰⽰项项⽬⽬ 下⾯的三篇演⽰了具体如何去访问PLC的数据,我们在访问完成后,通常需要进⾏处理,以下的⽰例项⽬就演⽰了后台从PLC读取数据后,前台显⽰并推送给所有在线客户端的 功能,客户端并进⾏图形化显⽰,具有⼀定

文档评论(0)

135****0879 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档