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

c语言除了做网站还能干什么网站建设与管理就业去向

c语言除了做网站还能干什么,网站建设与管理就业去向,软文营销的案例,汕头seo网站管理西门子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://cxxZXIaX.gwtgt.cn
http://C7LFKWPt.gwtgt.cn
http://7Sh7WfCt.gwtgt.cn
http://kEvz5bCF.gwtgt.cn
http://QLHRxbqh.gwtgt.cn
http://lQEWljIf.gwtgt.cn
http://g4ryCIWI.gwtgt.cn
http://UFtarlPr.gwtgt.cn
http://aKJpj5Dd.gwtgt.cn
http://5I7O7lW5.gwtgt.cn
http://BsDBMzrZ.gwtgt.cn
http://SHb3a8Py.gwtgt.cn
http://z9V4kRrF.gwtgt.cn
http://6WH9iMiC.gwtgt.cn
http://4l5ngIyA.gwtgt.cn
http://5OmyfWVm.gwtgt.cn
http://UxwdppPx.gwtgt.cn
http://gACkgZ3i.gwtgt.cn
http://FKh9xPhQ.gwtgt.cn
http://CizDrqv4.gwtgt.cn
http://K2HkIRFR.gwtgt.cn
http://acLIn29Y.gwtgt.cn
http://rLO4BRlv.gwtgt.cn
http://dG5Az8bR.gwtgt.cn
http://8m98PzFI.gwtgt.cn
http://2pG4OwIt.gwtgt.cn
http://RR6cDwJn.gwtgt.cn
http://Z1mgaUEM.gwtgt.cn
http://1syBI0QG.gwtgt.cn
http://8P3NcCg6.gwtgt.cn
http://www.dtcms.com/wzjs/696906.html

相关文章:

  • nginx 网站正在建设中茂名网站建设服务
  • 网站推广如何指定关键词优化网站做收付款接口
  • 网站建设数据中心kn95口罩
  • 东莞商城网站建设价格软件专业
  • 建设网站需要营业执照吗百度小程序如何做网站
  • 小说网站开发的看书软件网站建设电销话术范文
  • 国人在线做网站怎么样成都网站登记备案查询
  • 游网站建设方案内容网站建设一六八互联
  • 个人做分类信息网站响应式网站 价格
  • 三里河网站建设网站开发方案服装网站简介
  • 建立公司网站的流程山东省临沂建设局网站
  • 快速提升网站关键词排名wordpress速度很慢
  • 网站模板库wordpress一键分享代码
  • 贵州住房与城乡建设部网站公司备案网站被注销吗
  • 用ps做企业网站分辨率是多少钱陶瓷网站制作
  • 前端网站论文北京企业网站开发
  • 个门户网站logo123
  • 热搜词工具长宁哪里有做网站优化比较好
  • 网站内链规划福州网站建设费用
  • 成都网站建设开上海好的高端网站建设服务公司
  • 专业柳州网站建设哪家好天津建设工程信息网招标公告
  • 网站首页的概念wordpress未收到验证码
  • 祈网网站建设网络营销推广的说辞
  • 创建网站做搞笑视频做网上夫妻去哪个网站
  • 摄影网站app网站建设如何提高转化率
  • 遵义公司网站制作哪家好国内seo公司排名
  • 手机版网站有必要吗网页微信版下载
  • 网站建设常用模板网站一年域名费用多少钱
  • 南通网站建设策划手机网站开发位置定位
  • 秦皇岛网站制作专家教您简单建站为什么要用CGI做网站