西门子PLC模块广州市代理商---广东省西门子授权供应商
更新:2025-01-24 08:00 编号:28053641 发布IP:120.237.217.245 浏览:11次- 发布企业
- 广东湘恒智能科技有限公司商铺
- 认证
- 资质核验:已通过营业执照认证入驻顺企:第2年主体名称:广东湘恒智能科技有限公司组织机构代码:91441304MAC3TWY11U
- 报价
- 请来电询价
- 西门子PLC
- 西门子伺服电机
- 西门子触摸屏
- 西门子电缆
- 西门子变频器
- 西门子模块
- 关键词
- 华南西门子总代理,华中西门子总代理,华东西门子总代理,华北西门子总代理,西北西门子总代理
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
- 联系电话
- 13510737515
- 手机
- 13185520415
- 联系人
- 董海波 请说明来自顺企网,优惠更多
详细介绍
【导读】今天推荐一个连接西门子PLC的.net库,包括使用方法以及代码。前言PLC在工业自动化领域是常用的控制器,一般在和上位机界面通讯时,经常使用组态软件。以西门子PLC为例,上位机可以使用西门子的WINCC。当面对需求比较多样化的需求时,WINCC难以胜任。作为量产的标准化产品,WINCC授权的费用一笔不小的成本。S7.Net.dll是应用在 .NET平台上和西门子PLC通讯的一个动态库。大家可以到GitHub中直接去下载,或者直接搜索“S7.Net.dll”也可以找到下载的链接。文章Zui后也会给出链接。(一)S7Net动态库说明目前该动态库支持的西门子PLC类型有S7-200,S7-300,S7-400,S7-1200和S7-1500,基本涵盖了西门子所有的PLC产品。该库可以直接读写PLC中的全局DB块,作为通讯的接口。下面对需要的一些函数以及数据类型做简单说明。构造函数:cpu为枚举类型,代表PLC类型。ip 为PLC地址,需要和PLC组态的地址一致,和通讯的PC IP地址应在同一局域网段。rack为导轨号,slot 为插槽号,均可在博途硬件组态处获得。如下图所示,ip=“192.168.0.5”。如下图所示,rack为0,slot为1。publicPlc(CpuType cpu, string ip, short rack, short slot);public enumCpuType{ S7200 = 0, S7300 = 10, S7400 = 20, S71200 = 30, S71500= 40 }123456789获取是否连接成功:public bool IsConnected { get;}1连接PLC:public void Open();public TaskOpenAsync();12该类库提供了两个用于PLC连接的函数,区别在于第二个为异步连接,在请求连接的过程中,不会导致线程阻塞。我个人比较喜欢第二种方式。按位写操作:参数db代表访问的DB块编号,如下图所示UISendInt编号为3,UIReadInt编号为4。startByteAdr是在数据块内以字节为单位的起始地址,可以传入0。bitAdr为需要操作的位的偏移地址(以startByteAdr为基准),value为写入的值。dataType为枚举类型,我们操作的是数据块,传入DataBlock。public voidWriteBit(DataType dataType, int db, int startByteAdr, int bitAdr,bool value);public enum DataType{ Counter = 28, Timer = 29, Input = 129, Output = 130, Memory = 131, DataBlock =132}12345678910按字节读:count代表读的字节数量。在进行按字节读写时,对于8位的单字节变量来说没有任何问题。对于多字节比如在PLC中16位I的INT类型,需要注意大小端问题。在西门子PLC中以大端模式存储数据,在Intel的X86架构的PC上,却是以小端模式。在从PLC读取一个INT类型的变量,需要将读取回来的字节数组高低字节调换,后面C#程序中会有详细的实现代码。publicbyte[] ReadBytes(DataType dataType, int db, int startByteAdr, intcount);1按字节写:value代表将要传输的数据转换成的字节数组,如果要操作一个INT变量,需要提前将高低字节调换,后面C#程序中会有详细的实现代码。publicvoid WriteBytes(DataType dataType, int db, int startByteAdr, byte[]value);1(二)PLC设置实现外部程序可以访问操作DB块,需要对PLC部分做一些设置。对于要读取或者访问的DB块,要将优化的块访问取消,默认为勾选的,选中块右击选择属性。还要在硬件组态中,设置防护与安全中的连接机制。将“允许来自远程对象的PUT/GET访问”勾选。如下图:(三)C#程序在C#上位机软件中,对通讯类库的函数做一个简单的包装,以方便我们使用。新建一个类S7,在项目中需要引用S7.NET,并在该类中包含命名空间。usingS7.Net;1定义一个Plc类型变量plc,并定义该类的构造函数和析构函数:Plc plc;publicS7(S7DataType.CpuType cpuType,string ip,Int16 rack,Int16 slot){ plc = new Plc((CpuType)cpuType,ip, rack,slot);}~S7(){ this.plc.Close();}12345678910定义连接函数以及关闭函数:public voidOpenAsync(){ this.plc.OpenAsync(); }publicvoid Close(){ this.plc.Close();}123456789定义读写函数:之加lock,是因为在应用中数据通讯很有可能在不同的线程去操作,比如单独开一个线程定时从PLC更新数据。publicbyte[] PlcReadBytes(int db, int startByteAdr=0, int count=1){ try { lock (this) { returnthis.plc.ReadBytes(DataType.DataBlock, db, startByteAdr, count); } } catch { return new byte[2]; } } public void PlcWriteBytes(int db, byte[]value, int startByteAdr = 0){ lock(this) { this.plc.WriteBytes(DataType.DataBlock, db,startByteAdr, value); } }public void PlcWriteBit(int db, int bitAdr, bool value,S7DataType.DataType dataType = S7DataType.DataType.DataBlock) { int temp1 = bitAdr / 8; int temp2 =bitAdr % 8; lock (this) { this.plc.WriteBit((DataType)dataType, db, temp1,temp2, value); }}1234567891011128425262728293031323334定义字节和Int16类型之间的转换函数(需要进行高低字节转换):publicstatic byte[] Int16ToBytes(Int16 data) { byte[]temp = new byte[2]; temp[0] =(byte) (data>> 8); temp[1] = (byte)(data); return temp; }public static Int16BytesToInt16(byte[] bytes) { Int16 temp; temp =(Int16)( bytes[0] << 8 | bytes[1]); return temp; }
成立日期 | 2022年11月13日 | ||
主营产品 | 西门子PLC 变频器 伺服电机 人机界面 触摸屏 线缆 DP接头 | ||
经营范围 | 西门子PLC 变频器 伺服电机 人机界面 触摸屏 线缆 DP接头 | ||
公司简介 | 广东湘恒智能科技有限公司主要从事工业自动化产品的集成,销售与维修。致力于为您提供在机械、化工、水泥、电力、环保等领域的电气及自动化技术的完整解决方案,包括自动化产品及系统、工程项目执行及管理、主要过程控制领域技术支持,以及专业的售后服务、培训等。公司本着“以人矢志创新、追求卓越”的工作方针,致力于工业自动化控制领域的产品开发、工程配套和系统集成、销售,拥有丰富的自动为本、科 ... |
- 合肥市西门子S120伺服驱动器总代理---西门子S120伺服电机一级经销商在现代化工业发展进程中,伺服驱动系统的选择与应用成为了提高生产效率的关键因素之一... 2024-12-20
- 镇江市西门子S120伺服驱动器总代理---西门子S120伺服电机一级经销商在现代化工业发展进程中,伺服驱动系统的选择与应用成为了提高生产效率的关键因素之一... 2024-12-20
- 无锡市西门子S120伺服驱动器总代理---西门子S120伺服电机一级经销商在现代化工业发展进程中,伺服驱动系统的选择与应用成为了提高生产效率的关键因素之一... 2024-12-20
- 常州市西门子S120伺服驱动器总代理---西门子S120伺服电机一级经销商在现代化工业发展进程中,伺服驱动系统的选择与应用成为了提高生产效率的关键因素之一... 2024-12-20
- 苏州市西门子S120伺服驱动器总代理---西门子S120伺服电机一级经销商在现代化工业发展进程中,伺服驱动系统的选择与应用成为了提高生产效率的关键因素之一... 2024-12-20
- 西门子PLC模块南平市代理商---福建省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块三明市代理商---福建省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块龙岩市代理商---福建省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块宁德市代理商---福建省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块莆田市代理商---福建省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块深圳市代理商---广东省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块佛山市代理商---广东省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块东莞市代理商---广东省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块中山市代理商---广东省西门子授权供应商西门子PLC:西门子伺服电机
- 西门子PLC模块珠海市代理商---广东省西门子授权供应商西门子PLC:西门子伺服电机