范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

基于C开发ModbusTCP服务器实现数据接口

  -Begin-  前言
  有一个项目使用的是西门子的PLC,你开发了一个上位机,现在有一个第三方软件也想要获取西门子PLC的数据,希望你能提供一个接口,该如何实现。
  我相信你们应该会遇到这种问题,其实解决方案很多,今天跟大家分享一种方式——提供ModbusTCP接口,提供ModbusTCP接口其实就是开发ModbusTCP服务器。
  首先我们要清楚ModbusTCP服务器的本质就是Socket服务器,只是创建了4个集合或数组作为4个存储区,当接收到ModbusTCP客户端的报文请求时,将对应的存储区数据返回给客户端。
  虽然原理很容易理解,但是自己开发还是需要一点时间的,今天跟大家分享,如何基于NModbus4这个开源库来快速实现。实现
  方便起见,这里用控制台应用程序来做。
  首先创建一个控制台应用程序,然后通过Nuget添加两个通信库,分别是xktComm和NModbus4。
  然后创建几个静态对象:        //西门子通信         public static SiemensS7 siemensS7 = new SiemensS7();         //ModbusTcpSlave对象         public static ModbusTcpSlave modbusTcpSlave = null;         //TcpListener对象         public static TcpListener tcpListener;
  在Main方法里编写代码如下:        static void Main(string[] args)         {             //连接西门子PLC             bool siemensconn = siemensS7.Connect("192.168.1.200", CPU_Type.S71200, 0, 0);             if (siemensconn)             {                 Console.WriteLine("西门子PLC连接成功");             }             else             {                 Console.WriteLine("西门子PLC连接失败");             }              //创建ModbusTCP服务器             bool slaveconn = false;             try             {                 tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 502);                 modbusTcpSlave = ModbusTcpSlave.CreateTcp(1, tcpListener);                 modbusTcpSlave.Listen();                 slaveconn = true;                 Console.WriteLine("ModbusTCP服务开启成功");             }             catch (Exception ex)             {                 slaveconn = false;                 Console.WriteLine("ModbusTCP服务开启失败:" + ex.Message);             }              //西门子PLC连接成功且ModbusTCP服务器创建成功             if (siemensconn && slaveconn)             {                 while (true)                 {                     //读取PLC的数据,写入到ModbusTCP里                     float value = Convert.ToSingle(siemensS7.Read("DB1.DBD0", VarType.Real));                     //显示出来                     Console.WriteLine("读取数据:" + value);                     //写入Modbus服务器                     SetFloatValue(1, value);                      Thread.Sleep(500);                 }             }             Console.ReadLine();         }
  其中SetFloatValue方法是往ModbusTCP服务器的保持型寄存器中写入浮点数据,这里要注意,索引是从1开始的,这里就是将PLC的DB1.DBD0的数据读取之后,以浮点数的方式写入到40001和40002两个寄存器中。        public static void SetFloatValue(int offset, float value)         {             byte[] buffer = BitConverter.GetBytes(value);             ushort highValue = BitConverter.ToUInt16(buffer, 0);             ushort lowValue = BitConverter.ToUInt16(buffer, 2);             //获取保持型寄存器存储区             ModbusDataCollection data = modbusTcpSlave.DataStore.HoldingRegisters;             data[offset] = lowValue;             data[offset + 1] = highValue;         } 运行效果
  为了让大家更好地理解,我录制了一个小视频,需要的话,在评论区留言获取

浅析区块链区块链是一种分布式记账技术。以前就已经有了分布式记账的记账方式,但是效率太低了,就如同每个人家里都有一堆记录全村交易情况的账本。5G技术的发展使得分布式记账技术的应用成为可能。区块一千五左右的单款推荐摩托罗拉sdges处理器这款手机处理器搭载的是高通骁龙8705G处理器。而且这款手机是首发的高通骁龙870。CPU性能提升12。高通骁龙870处理器也是目前普遍安卓终端机所用的处理3款高速电摩来了,最高时速120kmh,续航都在180公里以上近些年,两轮电动车逐渐朝向高端化,小众化市场转变,尤其是很多互联网资本入局以后,高速电摩逐渐成为行业焦点。今天小编就带大家来看3款热门的高速电摩,速度,续航都非常出色!No。1速珂燃油车或将成为过去,比亚迪推出续航1000km电动汽车近几年电动汽车销量越来越好,电动汽车的可见率也越来越高。但是还是有相当一部分人还是对电动汽车有比较大的质疑,主要体现在续航里程短充电不方便充电时间长后期更换电池贵等问题上。而续航里燃油车还能走多远今年3月15日,奥迪宣布永久停止研发内燃机,以后只会在现有发动机上做升级。随后,奔驰也表示自己没有理由继续研发内燃机,宝马也表示会陆续停用内燃机。BBA的表态意味着什么呢?作为普通少用600吨塑料,iPhone13系列取消塑封设计,只为保护环境?苹果在今年的iPhone13系列上做了很多创新,例如引入了高刷新率屏幕更大底CMOS不过相比上代机器,这次苹果最大的变化或许是取消了塑料封膜设计,转而采用纸质拉条设计代替相比塑料封华为即将发布的手机nova9,还会有麒麟芯片加持吗?感谢您的阅读!现在大家都在考虑华为nova9的性能。特别是不是会不会使用麒麟处理器!实际上,我们更关注的是华为nova9的表现,在有些平台已经讲出了这款手机的具体参数,当然不知道是2021年9月小米手机推荐目录一小米手机全系列产品分析二具体机型选购分析小米手机主打性价比,在硬件上同价位段其他手机少有其对手,小米即是以性价比起家。总体来说,小米有以下这些优势1卓越的硬件配置性能2优秀的第1次使用iPhone手机,需要知道的几个点说几个点吧,讲讲我第1次使用iPhone时候的感受。我当时不理解,现在某些地方也不太理解,但已经适应。第一从左向右滑动返回。而不是安卓超级方便的屏幕内侧滑动返回!当然了,这个返回的手机内存不够,轻松解决大家是不是经常碰到手机内存不足。图片,视频无法保存。软件打不开,卡顿的现象?明明没有经常下载图片,视频,电影,却还是会显示内存不足。不管手机256G内存或者更新到512G了还是用了为什么很多人越来越喜欢在拼多多上买东西,实体店几乎不会刻意的去消费呢?我就是这样的人,开始非常反感拼多多,购物主要去京东。后来偶尔买了一次,尝到甜头,慢慢就喜欢上了,现在越来越频繁在拼多多购物,京东也买,但主要买大件,至于淘宝,很少去了。说真的,拼多
日媒二手电动车难找买家,中国共享电动汽车坟场仍在增加来源环球时报日媒中国共享电动汽车坟场仍在增加日本FridayDigital网站11月23日文章,原题在中国,共享电动汽车坟场正在快速增加目前,中国是全球最重要的电动汽车市场。在20魅族一直叫好不叫座,究其原因是什么?败于P7。在16系列可以从新雄起时,没货,专卖店加价500,失去了口碑和市场,早早巴魅蓝砍掉,失去占领低端市场和用户,现在又只做旗舰,又巴魅蓝激活,魅族迷一样的操作,本身品牌力度不从中国联想到联想中国,国企到人人喊打私企,联想到底怎么了?答中国联想,一个好端端的国企优秀企业,一步步地脱变成了外资控制的私人企业,这是中国的悲哀和失败。联想以中国的广大市场为外国资本家输血和套取利益,联想的高管已经从优秀企业家脱变成了买联想真的叫人来联想不断,还有断头贷,为什么不给大众一个解释?联想事件不断发酵,真会使人产生较多联想,我觉若想平息此事,联想就应出面解释吃瓜群众以下疑问公布相关集团和各下属子公司股权结构,看国有股份占多少?联想想上科创板,请公布科技研发投入占买手机首看性能,2021年公认性能最强的三款手机现在买手机,首看性能,任你花里胡哨的东西再多,带不起来一样白扯,但是手机性能现在也不能光以处理器来看,毕竟现在的手机承载了人生活中大部分的工具用途,我们今天就从使用性能(处理器屏幕苹果8plus,老年人必备神器,性能不用担心,放在现在依然能打之前我不是发了一个文章吗?说老年人不应该用一些千元机,因为性能太差了,用不了几年就要换,然后很多朋友都说直接买一个二手的苹果手机,然后我就仔细的琢磨一下,看中了这款苹果8p,其实大经典MP3播放器换代重生,全新设计Winamp将公开beta测试据官网消息,经典的Winamp播放器将迎来重大更新,会进行网站和LOGO的重新设计,并会在近期发布Beta版本供用户进行测试。不知道看到这个界面有没有让你的思绪回到10多年前,你曾联想的产品好不好看到有人在网上说联想的产品做的不好,东西怎么怎么不好用,我不知道是不是有人故意在抹黑联想,还是确有这事。但我还是有点发言权的,因为我买过联想的手机。记得是09年了,那时候我的旧手机拼多多淘宝上便宜的衣服敢给宝宝穿吗,这些衣服大多有毒可能不少妈妈最近都发现了,随着抖音直播拼多多以及淘宝的发展,不少商家在售卖低价的童装,能以低价买到高质量的衣服当然是好事,但是就怕一些有毒的童装。有些家长可能就会认为,孩子在成长期视频拍摄装备这么多,simorr让我最喜欢要说短视频是当下最流行的大众娱乐方式,估计没有人会反对,毕竟各大短视频平台如雨后春笋呈爆发式增长,主播网红大行其道,视频记录生活已经成为年轻人的一种潮流和生活方式,太多的人将其作为盘点古人留下来的未解之谜,古代是否已经有外星人了?史前文明,外星文明已来史前文明肯定有,神话传说未必假,远古有外星人也不足为奇,要知道人类有史文明也不过一万年而已,就算从古猿算起也不过二三百万年,而地球生命演化已有至少38亿年了,