当前位置: 首页 > wzjs >正文

自己做网站 做什么好滁州做网站价格

自己做网站 做什么好,滁州做网站价格,免费企业网站模板源码,博客网站排名西门子S7协议是用来和PLC进行通讯的一个协议,默认端口是102,数据会保存在一个个DB块中,比较经典的用法是一个DB块专门用来读取,一个用来写入。 DB(数据块) {块号}.DBX/DBD/DBW{字节地址}.{位偏移} 1、数据…

西门子S7协议是用来和PLC进行通讯的一个协议,默认端口是102,数据会保存在一个个DB块中,比较经典的用法是一个DB块专门用来读取,一个用来写入。

DB(数据块)+ {块号}.DBX/DBD/DBW+{字节地址}.{位偏移}

1、数据块是存放全局变量的内存区域,类似数据库的表.

2、三种类型的字节地址是共用的,所以要特别注意不同数据类型占用的长度是不同的,否则会出现异常数据的情形。

提到字节排列就得提到不同的通信设备的排列方式是有区别的,像是C#,三菱PLC就是小端排列类似于ABCD,4个字母表示4个字节;西门子PLC是大端排列,顺序是DCBA,modbus等协议是不规则排列,顺序有BADC,CDAB。

DBX(data block bit) 按位访问,用于访问数据块中的单个位即Bool类型,例如: DB1.DBX0.1 表示数据块1的第0字节的第0位。

每个字节有8位,所以偏移量的范围是0~7.

DBW(Data Block Word)数据块字,用于访问16位的数据,例如:Word,int类型。由于1个字 = 16位也就是2个字节,所以地址必须是偶数,无需使用位偏移

例如:DB1.DBW0表示数据块1的第0个字节开始的16位数据

DBD(data block double word)数据块双字,用于访问32位的数据,例如:DWord,Dint,Real类型。由于1个双字 = 32位也就是4个字节,所以地址必须是4的整数,无需使用位偏移

例如:DB1.DBD0表示数据块1的第0个字节开始的32位数据

使用C#实现西门子S7通讯可以通过S7NetPlus,HslCommunication类库来实现

1、使用S7NetPlus实现读写数据

    // 第一个参数是CPU的型号// 第三个参数是PLC的机架(Rank)// 第四个参数是CPU的插槽(Slot)using (var plc = new Plc(CpuType.S71200, "127.0.0.1", 0, 1)){try{plc.Open();if (plc.IsConnected == false){this.textBox1.Text = this.textBox1 + "连接失败" + Environment.NewLine;}#region 写入数据// 写入一个bool类型plc.Write("DB1.DBX0.0", true);// 写入一个无符号整数ushort ushortValue = 3600;plc.Write("DB1.DBW2.0", ushortValue);// 写入一个浮点数float floatValue = 3.14f;plc.Write("DB1.DBD4", floatValue);// 写入一个有符号整数int intValue = 2025;plc.Write("DB1.DBD8", intValue);#endregion#region 读取数据// 读取一个bool类型var is_am = (bool)plc.Read("DB1.DBX0.0");this.textBox1.Text = this.textBox1.Text + "is_am=" + is_am + Environment.NewLine;// 读取一个无符号的整数类型 - word 对应c#的就是ushort类型var second = (ushort)plc.Read("DB1.DBW2.0");this.textBox1.Text = this.textBox1.Text + "second=" + second + Environment.NewLine;// 读取一个浮点数var pie = ((uint)plc.Read("DB1.DBD4")).ConvertToFloat();this.textBox1.Text = this.textBox1.Text + "pie=" + pie + Environment.NewLine;// 读取一个有符号的整数var year = ((uint)plc.Read("DB1.DBD8")).ConvertToInt();this.textBox1.Text = this.textBox1.Text + "year=" + year + Environment.NewLine;#endregion}catch (Exception ex){this.textBox1.Text = this.textBox1 + ex.Message + Environment.NewLine;}}

2、使用HslCommunication实现读写功能

写入:

        plc = new SiemensS7Net(SiemensPLCS.S1200, "127.0.0.1");Random random = new Random();var flag = await plc.WriteAsync("DB1.DBX0", random.Next(0, 2) == 0 ? false : true);var int_value = await plc.WriteAsync("DB1.DBW2", (short)random.Next(0, 1000));var float_value = await plc.WriteAsync("DB1.DBD4", (float)random.Next(0, 10) / 10.0f);// 中文不能使用默认的Ascii编码,需要使用UTF8编码var arr = new string[3] { "中", "美", "日" };var string_value = await plc.WriteAsync("DB1.DBD8", arr[random.Next(0, 3)], Encoding.UTF8);await Task.Delay(1000, cts.Token);if (int_value.IsSuccess == false){this.Invoke(new Action(() => {this.textBox1.Text = "通讯失败" + Environment.NewLine + this.textBox1.Text;}));continue;}

读取:

    plc = new SiemensS7Net(SiemensPLCS.S1200, "127.0.0.1");var flag = await plc.ReadBoolAsync("DB1.DBX0");var int_value = await plc.ReadInt16Async("DB1.DBW2");var float_value = await plc.ReadFloatAsync("DB1.DBD4");// 读取中文不能使用默认的Ascii编码,需要使用UTF8编码var string_value = await plc.ReadStringAsync("DB1.DBD8", Encoding.UTF8);await Task.Delay(1000, cts.Token);if (int_value.IsSuccess == false){this.Invoke(new Action(() => {this.textBox1.Text = "通讯失败" + Environment.NewLine + this.textBox1.Text;}));continue;}this.Invoke(new Action(() =>{this.textBox1.Text = "flag:" + flag.Content.ToString() + Environment.NewLine + this.textBox1.Text;this.textBox1.Text = "float_value:" + float_value.Content.ToString() + Environment.NewLine + this.textBox1.Text;this.textBox1.Text = "int_value:" + int_value.Content.ToString() + Environment.NewLine + this.textBox1.Text;this.textBox1.Text = "string_value:" + string_value.Content.ToString() + Environment.NewLine + this.textBox1.Text;}));

文章转载自:

http://423reFHp.jhrqn.cn
http://DsuQewAW.jhrqn.cn
http://N4orCgVt.jhrqn.cn
http://E7FNzOaH.jhrqn.cn
http://ZlGVfPAh.jhrqn.cn
http://OuJoWG09.jhrqn.cn
http://kRhrTrAz.jhrqn.cn
http://dK7DuYTT.jhrqn.cn
http://FEQgeWOh.jhrqn.cn
http://M9BmK23L.jhrqn.cn
http://ymtaTxUG.jhrqn.cn
http://l7wZdHDN.jhrqn.cn
http://5P9mSEjZ.jhrqn.cn
http://JMl2P99r.jhrqn.cn
http://tmfbfcah.jhrqn.cn
http://kFHNayc5.jhrqn.cn
http://Ow967C7r.jhrqn.cn
http://0goJ6dd5.jhrqn.cn
http://MHToUtui.jhrqn.cn
http://Cy5TqApv.jhrqn.cn
http://VcpHHl4H.jhrqn.cn
http://3WJjsYWL.jhrqn.cn
http://GSB05irb.jhrqn.cn
http://bNeeltZ7.jhrqn.cn
http://YoatFwnU.jhrqn.cn
http://zJzs1NvW.jhrqn.cn
http://mHMUsAHo.jhrqn.cn
http://QWtGzciK.jhrqn.cn
http://hZRtj2jz.jhrqn.cn
http://7aLgYEaK.jhrqn.cn
http://www.dtcms.com/wzjs/668938.html

相关文章:

  • 做网站跟网站设计的区别怎么制作小视频的教程?
  • 内存优化大师网站权重优化
  • 摄影网站建设解决方案seo关键词排名优化如何
  • 济南迅翔网站建设制作ppt的软件电脑
  • 网站建设开发报价方案模板下载谷德设计网官网首页入口
  • ps网站建设网页设计教程视屏
  • 搬瓦工的主机做网站邯郸信息港最新招聘信息2023
  • 手机网站建设教程聊城网站优化技术
  • 智慧校园信息门户网站建设国外网站如何搭建网页
  • 高大上网站设计俐侎族网站建设背景
  • 环保局网站建设方案北洼路网站建设
  • 做网站业务的 怎么跑客户wordpress文章底部版权声明
  • 网站刷排名工具创新实用小产品设计
  • 昆明网站建设公司哪家便宜建e网站官网案例
  • 如何对网站用户分析wordpress 虚拟下载插件
  • 电商建网站运营东城建设网站
  • 地方门户网站怎么赚钱南昌网络营销公司
  • 部门网站集约化建设方案韩国设计教程网站
  • 海贼王路飞和女帝做的网站触摸屏互动网站建设案例
  • 河南省建设执业资格中心网站有哪些做场景秀的网站
  • 简述电子商务网站建设的过程获取免费域名
  • 简单网页制作代码模板网站怎么优化排名的方法
  • 做企业网站还有市场吗做英语阅读的网站
  • 网站开发准备网络加速器手机版
  • 网站优化检测工具shopify做全品类网站
  • 用phpcms建站的网站青岛海川建设集团网站
  • 手机端网站建设教程视频江门免费模板建站
  • 山东大汉建设机械有限公司网站网站建设好学么
  • 手机网站代码卸载 wordpress
  • 建网站入门2023新闻摘抄10条