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

网站建设综合实训心得青岛的互联网公司

网站建设综合实训心得,青岛的互联网公司,网站首页 选择入口 设计,如何建设电子商务网站一、 引子 首先感谢博客园#xff1a;第一篇文章、第一个开源项目#xff0c;算是旗开得胜。可以看到#xff0c;项目大部分流量来自于博客园#xff0c;码农乐园#xff0c;名不虚传^^。 园友给了我很多支持#xff0c;并提出了很好的改进意见。现加入屏幕分辨率自适应… 一、   引子         首先感谢博客园第一篇文章、第一个开源项目算是旗开得胜。可以看到项目大部分流量来自于博客园码农乐园名不虚传^^。 园友给了我很多支持并提出了很好的改进意见。现加入屏幕分辨率自适应和OPC Server可CLSID和ProgID自适应加载功能。屏幕自适应本是普遍问题因为之前都是标配硬件举手之劳一懒就忽略了。         仅仅十天前我还是上github只会点击的菜鸟。Readme文件如何编辑都是现学现卖。 第一次向github上传仓库下载了发现居然没有任何exe,dll,bak文件度之更改忽略文件。总之是赶鸭子上架各种囧。 然则有园友捧场我也就不揣浅陋以见教于大方了。 二、   如何加入一个新驱动 准备工作 我更新了dll文件夹增加了libnodave.dll、libnodave.net.dll、SiemensPLCDriver.dll。这个SiemensPLCDriver.dll 就是西门子S7系列PLC的驱动程序(包括源代码在Program里面。请先同步或者重新下载最新版本。 libnodave开源库(https://github.com/netdata/libnodave)据说是来自西门子的德国大神所作。某前辈当年一句话能搞定驱动就是大牛。我找到了libnodave,封装后成功的实现了与西门子200PLC通讯很受鼓舞也成为了项目的起点。 注册驱动 打开变量管理器TagConfig点注册双击【路径】框在dll文件夹里找到SiemensPLCDriver.dll。 如果出现在下方列表打钩点注册一般会提示成功。  这时候右键点树节点S1-参数设置就会看到S7以太网协议已经成为可选项。 驱动的加载 实际上述一系列动作就是驱动dll的信息已经写入了数据库的RegisterModule表。 这张表就是为系统服务反射加载驱动程序提供基本信息加载的位置、类名 、描述以便实例化为具体的驱动类。 在DAServer内有一个AddDriver方法就是Activator.CreateInstance加载驱动并转换为IDriver。 使用反射加载最大优点就是用户可以自己实现一个驱动或者引用第三方驱动并用TagConfig注册而不需要改动源代码。 三、   如何实现一个新驱动  驱动接口规范 [Description(S7 以太网协议)] public sealed class SiemensTCPReader : IPLCDriver, IMultiReadWrite   我在前一篇文章里提到IPLCDriver 是所有PLC都实现的接口。IMultiReadWrite 是支持批量读写的下位机必须实现的接口。 因为PLC都具有可连接性、可读写性同时西门子的协议还支持批量读写。 SiemensTCPReader 里的Connect方法就是对libnodave中connectPLC方法的封装。 Dispose方法就是释放libnodave的非托管资源。 ReadBytes、ReadInt32、ReadBit、ReadFloat、WriteFloat等方法就是对IReaderWriter接口的实现。也就是单独读写。 ReadMultiple、WriteMultiple方法是对IMultiReadWrite 接口的实现也是对libnodave中批量读写方法的封装。 GetDeviceAddress/GetAddress方法很重要在TagConfig里编辑的地址是西门子约定俗成的比如DB3,DD122.1要翻译成下位机理解的设备地址DeviceAddress。 这个Description 属性描述符在注册之后会被反射为驱动的描述字符存入数据库。  为什么要实现批量读写如何实现 批量读写的目的就是为了提高性能。 很多人总是拿C#、.NET的所谓性能说事。首先我认为.NET性能优良。关键是你怎么写。 而对性能影响最大的往往不是语言、框架而是IO。IO的性能成本往往是语言本身的十倍、百倍、甚至千倍。 在PLC通讯过程中请求往返就是性能瓶颈。因为大部分下位机不支持订阅-发布推送模式只能采用定期轮询方式。 既然是轮询如果变量很多如果一个个去读写读1000个变量要轮询1000次一次往返起码几十毫秒效率差的惊人还占用PLC大量资源。这是行不通的。 但如果你想一次就能读入1000个变量要考虑到变量地址可能是不连续的散乱的。而每次读取的大小受PDU所限。 所以就一定要对变量的分布分析整理类似送快递客户虽然分布在各个小区但并不能像醉汉一样漫无目的的投递而是根据客户的分布执行最优化的路线选择。 整理的结果就是将所有要读写的变量分割为块每块大小不能超过PLC 的PDU。力求往返次数最少、一次读入的区块最大、包含的变量最多。 分割整理变量区块的功能就是PLCGroup 的UpdatePDUArea函数实现的。不过我在这里只是进行简单的地址归纳并没有做最优解。最优算法肯定是存在的但可能与现行方法出入不会太大。 四、   下面的计划 写一系列帖子把架构、原理讲清楚。大致如下 网关层接口概述 上下位机通讯原理 如何实现一个设备驱动 如何设计图元 VS插件模块及原理 归档模块及文件格式 如何进行功能扩展 组态变量表达式实现 github地址https://github.com/GavinYellow/SharpSCADA。欢迎大家提出宝贵意见和建议 相关文章  .NET十年回顾 开源纯C#工控网关组态软件 原文地址http://www.cnblogs.com/evilcat/p/7647775.html.NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
http://www.zqtcl.cn/news/183080/

相关文章:

  • 网站抓取超时错误c 高性能网站开发
  • 营销导向企业网站策划wordpress 不显示菜单
  • 特效视频网站用.net做视频网站的案例
  • 网站建设实用的网站视屏网站的审核是怎么做的
  • 网站模板之家免费下载福州网红餐厅
  • 西安网站设计与建设第三方检测机构
  • 手机网站推广法建设网站明细报价表
  • 一级a做爰片免费网站录像好商网的网站可以做中英文切换吗
  • 视频网站闪图怎么做网件路由器管理地址
  • 一个完整的网站建设网站模板去哪要
  • 烤漆 东莞网站建设水果香精东莞网站建设技术支持
  • 国家重大项目建设库网站北京网站开发外包公司
  • 建设免费网站制作二维码的软件app
  • 网站突然没收录了网站建设和运营的成本是多少钱
  • 家政公司网站模板wordpress防cc代码
  • 福田附近做网站公司网站反向链接
  • 南阳网站关键词哪做网站便宜
  • 往网站上做新东西需要什么智库网站建设
  • 网站建站系统程序做网站代理商好赚吗
  • 哪些网站是做食品dedecms转wordpress
  • 广东华迪工程建设监理公司网站网站的优化从哪里进行
  • 国产做的视频网站优秀网站首页
  • 做国际黄金看什么网站网络营销品牌推广公司
  • 手机自助建站平台手机网站开发设计报价单
  • 网站建设标书范本注册了一个域名怎么做网站
  • 行政部建设公司网站东莞市做网站
  • 网站建设开发的流程建设官方网站的主要作用
  • 怎样用模板做网站wordpress柚子皮
  • 长宁区网站建设公司内蒙古赤峰市建设局网站
  • 网站配色怎么对网站的数据库做管理