C# 机器视觉工控通讯------西门子PLC之S7协议上位机通讯

使用步骤

1.引入库

项目添加应用HslCommunication.dll和代码代码如下(示例):
dll官方支持网站>

using HslCommunication.Profinet.Siemens;

## 2.定义全局变量,选择PLC类型,设置正确的IP地址代码如下:` public static string PlcIpAddress = "192.168.101.50";public static SiemensPLCS siemensPLCS = SiemensPLCS.S1200;public static SiemensS7Net siemensTcpNet = null;

3.链接PLC

代码如下:

      public static bool InitialPLC(){int k = 0;tryAgain:try{System.Net.IPAddress address;if (!System.Net.IPAddress.TryParse(PublicVariables.PlcIpAddress, out address)){MessageBox.Show("Ip地址输入不正确!");return false;}//SiemensPLCS siemensPLCS = SiemensPLCS.S1200;PublicVariables.siemensTcpNet = new SiemensS7Net(PublicVariables.siemensPLCS);PublicVariables.siemensTcpNet.IpAddress = PublicVariables.PlcIpAddress;OperateResult connect = PublicVariables.siemensTcpNet.ConnectServer();if (!connect.IsSuccess){return false;}return true;}catch (Exception ex){k++;if (k < 4){Thread.Sleep(50);goto tryAgain;}else{return false;}}}

-## 4.数据DB块写入–

        /// <summary>/// 统一的数据写入的结果显示/// </summary>/// <param name="result"></param>/// <param name="address"></param>public static void writeResultRender(OperateResult result, string address){//Thread.Sleep(200);if (result.IsSuccess){//MessageBox.Show(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 写入成功");}else{MessageBox.Show(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 写入失败{Environment.NewLine}原因:{result.ToMessageShowString()}");}}

##4.1 写入实列如下:

writeResultRender(PublicVariables.siemensTcpNet.Write("DB80.4.6", bool.Parse("true")), "DB80.4.6")

##5 bool类型读取

        public OperateResult<bool> ReadBool(string address){return GetBoolResultFromBytes(ReadBitFromPLC(address));}

##6 寄存器批量读取

        public override OperateResult<byte[]> Read(string address, ushort length){OperateResult<byte, int, ushort> operateResult = AnalysisAddress(address);if (!operateResult.IsSuccess){return OperateResult.CreateFailedResult<byte[]>(operateResult);}List<byte> list = new List<byte>();ushort num = 0;while (num < length){ushort num2 = (ushort)Math.Min(length - num, 200);OperateResult<byte[]> operateResult2 = Read(new OperateResult<byte, int, ushort>[1] { operateResult }, new ushort[1] { num2 });if (!operateResult2.IsSuccess){return operateResult2;}list.AddRange(operateResult2.Content);num = (ushort)(num + num2);operateResult.Content2 += num2 * 8;}return OperateResult.CreateSuccessResult(list.ToArray());}

总结

以上就是今天要讲的内容,本文仅仅简单介绍了西门子工控机和西门子PLC使用S7协议通讯,而HslCommunication提供了大量工控通讯的方法。

C# 机器视觉工控通讯------西门子PLC之S7协议上位机通讯相关推荐

  1. 欧姆龙PLC码垛程序 电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机。 PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯

    欧姆龙PLC码垛程序(某上市公司设备),电机:四个雷塞闭环步进电机,四个汇川伺服电机,总共八个电机. PLC:CP1H-EX40DT-D,八个轴就用了两个PLC,还有跟上位机通讯. 图四是机台俯视图 ...

  2. 西门子PLC的S7协议报文解析说明

    我们以S7的1500系列来查看握手和读取.写入[字Word或者位Bit]命令报文 以下报文不做说明时都是十六进制字节. 西门子PLC需要连接成功后发送两次握手命令方可进行读写通信. 西门子PLC的S7 ...

  3. 西门子200smart与台达MS300变频器和欧姆龙E5CC温控器通讯程序 触摸屏与plc以太网通讯,PLC本体com口与变频器通讯485口相连,扩展模块SB CM01与欧姆龙温控器485通讯

    西门子200smart与台达MS300变频器和欧姆龙E5CC温控器通讯程序 器件:西门子s7 200 smart PLC,扩展模块SB CM01,台达MS300变频器,欧姆龙E5cc 温控器,昆仑通态 ...

  4. 工控危险 施耐德PLC产品现高危漏洞

    本文讲的是 工控危险 施耐德PLC产品现高危漏洞,施耐德电气公司开始发布固件补丁处理影响该公司莫迪康(Modicon)M340可编程逻辑控制器(PLC)产品线的高严重性漏洞. 工业控制系统网络应急相应 ...

  5. 西门子PLC 1200和V20变频器USS通讯 5台西门子变频器V20和1200PLC USS通讯

    西门子PLC 1200和V20变频器USS通讯 5台西门子变频器V20和1200PLC USS通讯,西门子触摸屏,总线通讯,实际项目程序,提供,CAD电气图纸 变频器设置说明 详细注释和项目文件 YI ...

  6. C#上位机 西门子PLC通信 S7NET协议

    C#上位机 西门子PLC通信 S7NET协议 1,西门子PLC网口通信,可通信S7-200smart,S7-1200,S7-1500. 2,例子简单易懂,自己写的程序,可提供部分 3,现场实测有效. ...

  7. java以太网通讯西门子plc300_3套300PLC之间的以太网通讯

    1.plc的pn口就相当于一个小型交换机,你的连接方式是可以的.1和3的通讯,你不需要转接,会自动连接上的. 2.在一个系统中只能有一个主站,所以你的应该是1分别2,3建立连接,2和3之间需要通讯的数 ...

  8. 西门子1200程序V15版本实例,设备已经运行生产,博图V15以上可打开 包含上位机通讯,modbus485

    西门子1200程序V15版本实例,设备已经运行生产,博图V15以上可打开 包含上位机通讯,modbus485,伺服等 西门子1214C控制4台步进电机: 西门子1214C与4台MS300变频器modb ...

  9. Labview2019,通讯三菱plc,用opc和mc通讯协议,sqlite数据库,labview标准框架jki状态机,加上数组队列,实现多线程交互。

    Labview2019,通讯三菱plc,用opc和mc通讯协议,sqlite数据库,labview标准框架jki状态机,加上数组队列,实现多线程交互. _:4550670508310561加菲猫眼

最新文章

  1. 遍历datatable的方法
  2. DELPHI纤程的演示
  3. 11.typescript-元组
  4. spark hbase
  5. 回溯法(深度优先)剪枝和分支限界法(宽度优先)剪枝对比:01背包问题
  6. java环境变量设置优化_Mac/windows配置jdk环境变量-seo优化只选拉一八科技
  7. html 切换主题,html切换主题实现方案
  8. 计算机2级u盘作弊,一种带LED指示灯的计算机考试防U盘作弊装置制造方法及图纸...
  9. ApacheCN 数据库译文集 20211112 更新
  10. matlab编写识别手写数字_使用PYNQ搭建手写数字识别工程小白级说明(完整版)
  11. DenyHosts清除黑名单IP地址方法
  12. 密码在智能汽车数据安全领域的应用研究报告
  13. VJ第一周算法题(A - Mud Puddles)
  14. Vue项目中应用“策略模式”
  15. 听听别人怎么说:VueJS 与 ReactJS
  16. 论文阅读:Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
  17. python实现简单五子棋
  18. direction和unicode-bidi
  19. 计算机的四屏故障维修,计算机应用之显卡故障维修技巧
  20. 高频交易(二)浅谈高频交易中比较成熟的一些交易策略

热门文章

  1. Python、Numpy、Pandas、SciPy、Scikit-Learn、Matplotlib的关系及学习资料
  2. android sony 动态背景,安卓福利:精选索尼手机原生壁纸 每一张都有索尼的信仰加成!...
  3. 春天到了,皮肤湿疹发作?教你这几个常用招式与皮肤湿疹说一声再见!
  4. C++ Boost库:数值转换 lexical_cast
  5. Github 上 365 道 Java 高频面试复习题,助你吊打面试官
  6. Java拼音转换一例
  7. 玩转正则,成为正则表达式的大神!值得学习~~
  8. ORA-19905: log_archive_format must contain %s, %t and %r
  9. 网络基础之OSI七层参考模型与TCP/IP五层模型
  10. for in for of forEach