modbus

【阿里云IoT+YF3300】1.时代大背景下的阿里云IoT物联网的现状和未来

房东的猫 提交于 2020-04-23 07:35:44
“未来十到二十年,大家基本已经形成了一个共识,那便是新格局的奠定将由 AI 和物联网技术来支撑。放眼国内,在这些互联网巨头之中,未来真正成为竞争对手厮杀的,阿里和华为是首当其冲,在这两个领域双方分别暗自发力,更有各有各的优势。”--《 阿里云物联网之路 》 物联网看似简单的三个字,实现起来却不那么容易,不仅仅是硬件和软件的问题,更是通信和各种设备聚合的问题。作为中国最有影响的公司,阿里巴巴从芯片、到嵌入式系统、到物联网平台,再到各种 ET 大脑及工业互联网平台,最后到 SaaS 加速器及小程序。用两到三年的时间,才把阿里未来 AI+IoT 的战略布局初步成型,这已经是最快的速度了。 我在2001年就投身于工控行业,主要在钢铁厂做一些自动化相关的项目,各种PLC、HMI触摸屏、各种智能仪表、板卡,还有各种组态软件,现场总线,无线通信比较熟悉。一直以来,对物联网和工控自动化概念上是有混淆的,感觉上物联网技术其实就是工控自动化的一部分,或者是工控自动化的外延而已。 后来随着物联网技术的不断发展,及自己从事的各种物联网项目的增多,比如种植大棚物联网监控,远程渔业监控,远程垃圾和污水监控,还有一直和新希望合作的养殖物联网监控等等。此外还设计了各种物联网网关,智能终端,养殖综合采集器,水处理综合检测仪等等产品。 物联网的概念在脑中越来越清晰,越来越立体。特别是从2016左右开始

Wireshark抓包,带你快速入门

纵饮孤独 提交于 2020-04-21 14:45:04
前言 关于抓包我们平时使用的最多的可能就是Chrome浏览器自带的Network面板了(浏览器上F12就会弹出来)。另外还有一大部分人使用Fiddler,Fiddler也是一款非常优秀的抓包工具。但是这两者只能对于HTTP和HTTPS进行抓包分析。如果想要对更底层的协议进行分析(如TCP的三次握手)就需要用到我们今天来说的工具Wireshark,同样是一款特牛逼的软件,且开源免费自带中文语言包。 安装和基本使用 Wireshark开源地址: https://github.com/wireshark/wireshark Wireshark下载地址: https://www.wireshark.org/download ,这里有它的历史版本。今天我们就来安装最新版本3.2.0,一路默认“下一步”安装大法就可以了。安装好后默认就是中文版。 开始抓包 显示过滤器 你会发现第一部分内容跳到非常快,根本没法找到自己想要分析的内容。这里我们可以使用显示过滤器,只显示我们想要看的内容。 在显示过滤器填入 http.request.method == "GET" ,然后用Chrome浏览器访问 http://fanyi-pro.baidu.com/index (特意找的一个http网站) 除了过滤Get请求外,常用的显示过滤器还有: tcp、udp 前者表示只显示tcp,后者表示只显示udp。也可以

物联网海量设备心跳注册,脱网清除——多线程高并发互斥锁落地

青春壹個敷衍的年華 提交于 2020-04-16 09:41:19
【推荐阅读】微服务还能火多久?>>> 物联网海量设备心跳注册,脱网清除——多线程高并发互斥锁落地 目录 物联网海量设备心跳注册,脱网清除——多线程高并发互斥锁落地 1.应用背景 2.整体框架 2.1.心跳注册框架 2.1.1.海量设备 2.1.2.心跳上报Handler流程 2.2.脱网清理框架 2.2.1.激活字典表清理脱网设备方法 2.2.2.脱网清理流程图 3.多线程与高并发说明 3.1.多线程说明 3.2.高并发说明 4.多线程高并发造成的异常现象 4.1.空引用 4.2.字典表里元素赋值不成功 4.3.统计设备总数不正确 5.分析异常原因 5.1.造成空引用的原因 5.2.设备IP赋值不成功原因 5.3.统计设备总数不正确原因 6.解决思路 7.代码实现 8.小结 1.应用背景 在物联网应用场景中,需要维护很多个设备的连接,比如基于TCP socket通信的长连接,目的是为了获取设备采集的信息,反向控制设备的数字开关或者模拟量。我们把这些TCP长连接都放入了基于线程安全的ConcurrentDictionary激活字典表中,IP地址作为key,设备箱领域模型作为value。我们需要把激活设备箱的字典表维护好,需要将超时没有心跳的设备,我们可以称之为脱网设备,给清理出激活字典表,写入到脱网告警字典表中去。当脱网设备下次再有心跳时,可以再次移入到激活字典表中

选择工业PLC远程模块需要注意功能细节

自作多情 提交于 2020-04-12 09:18:37
4G工业PLC远程模块已经广泛应用于电力、工业自动化、环保、金融等工业领域。 自助终端设备需要大数据量网络传输,通过4G模块高速联网,将所有终端业务数据及设备运行状态实时传输到业务中心,降低了业务中心运营成本,管理运营规模化。 1.边缘计算功能 支持远程控制功能,实现数据采集、数据监控、数据过滤、数据安全防护,数据存储,数据上传、远程上下载等功能; 2.多种联网方式 支持以太网、4G、WiFi,手机热点等联网方式,为不同的应用场合提供不同的接入方案。 3.协议兼容广 支持工业现场的多种工业设备协议、国际标准协议,如:Modbus等,使设备轻松接入。 4.故障自愈 支持联网断线自动重拨,故障自愈;提供故障线路链路冗余,多级链路检测机制保障设备在线。 5.安全防护 支持防火墙功能,保证设备网络安全特性; 6.云组态 一站式完成终端设备数据采集、实时控制、分组管理、组态设计等功能。 7.智能维护 对每台机床进行远程维护,实现远程诊断、远程遥控。对现场设备自动更新下载程序,运维人员无需去现场就能及时解决故障问题。 点赞 收藏 分享 文章举报 华杰智控HJ8900 发布了26 篇原创文章 · 获赞 6 · 访问量 1万+ 私信 关注 来源: oschina 链接: https://my.oschina.net/u/4404541/blog/3230533

Modbus协议和应用开发介绍

不问归期 提交于 2020-04-10 17:46:27
因业务需要了解Modbus协议的使用,因此对Modbus的协议,以及相应的C#处理应用进行了解,针对协议的几种方式(RTU、ASCII、TCPIP)进行了封装,以及对Modbus的各种功能码的特点进行了详细的了解,本篇随笔基于这些知识进行了一定的梳理和介绍,主要内容包括Modbus协议简要介绍、Modbus模拟工具使用和Modbus应用开发几个部分。 1)Modbus协议简要介绍 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 Modbus由MODICON公司于1979年开发

Modbus协议和应用开发介绍

走远了吗. 提交于 2020-04-10 17:42:51
因业务需要了解Modbus协议的使用,因此对Modbus的协议,以及相应的C#处理应用进行了解,针对协议的几种方式(RTU、ASCII、TCPIP)进行了封装,以及对Modbus的各种功能码的特点进行了详细的了解,本篇随笔基于这些知识进行了一定的梳理和介绍,主要内容包括Modbus协议简要介绍、Modbus模拟工具使用和Modbus应用开发几个部分。 1)Modbus协议简要介绍 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 Modbus由MODICON公司于1979年开发

Modbus协议和应用开发介绍

為{幸葍}努か 提交于 2020-04-10 16:26:02
因业务需要了解Modbus协议的使用,因此对Modbus的协议,以及相应的C#处理应用进行了解,针对协议的几种方式(RTU、ASCII、TCPIP)进行了封装,以及对Modbus的各种功能码的特点进行了详细的了解,本篇随笔基于这些知识进行了一定的梳理和介绍,主要内容包括Modbus协议简要介绍、Modbus模拟工具使用和Modbus应用开发几个部分。 1)Modbus协议简要介绍 Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。 当在一Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用Modbus协议发出。在其它网络上,包含了Modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。 Modbus由MODICON公司于1979年开发

基于stm32的modbus协议移植

冷暖自知 提交于 2020-04-09 11:00:05
在移植过程中得益于这两篇blog,大家可以参考下。 http://ntn314.blog.163.com/blog/static/161743584201233084434579/ http://bbs.eeworld.com.cn/thread-362508-1-1.html 这两篇博客上对modbus协议以及移植解释的很清楚,这里就不在啰嗦了。 首先,要下载一个freemodbus,自己写的modbus协议也可以,但考虑到时间和可扩展性还是选择开源的比较妥当些。这个协议最核心部分我感觉就是对寄存器的读写,当然如果涉及到PLC当然还有继电器等,其他部分已经把接口给你了,然后自己就按照说明去添加就可以。对了,在移植中当时对这个过程 *pucRegBuffer++ = ( uint8_t )( usRegHoldingBuf[iRegIndex] >> 8 ); *pucRegBuffer++ = ( uint8_t )( usRegHoldingBuf[iRegIndex] & 0xFF ); 有点模糊,但在纸上画一下就豁然开朗了。其他的就没有难度了。下面就进入正文: 首先需要改动的部分还主要是 eMBRegInputCB(UCHAR * pucRegBuffer,USHORT usAddress,USHORT usNRegs)、 eMBRegHoldingCB(UCHAR *

移植Modbus到STM32F103(4):串口数据长度和校验的支持

情到浓时终转凉″ 提交于 2020-04-09 10:59:42
在 移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码 里,为了方便,没有移植数据位和校验位。这两个其实是很容易移植的。 先说数据位,官方宣称STM32F103支持8位和9位数据位,但因为其把校验位也算为数据位,所以其实能支持的是带校验位的7位、8位数据位和不带校验位的8位、9位数据位。所以只要在串口初始化中做如下判断即可: if ( ( ucDataBits == 7 ) && ( eParity != MB_PAR_NONE ) ) { USART_InitStructure.USART_WordLength = USART_WordLength_8b; is_7databits = 1; } else if ( ( ucDataBits == 8 ) && ( eParity == MB_PAR_NONE ) ) { USART_InitStructure.USART_WordLength = USART_WordLength_8b; is_7databits = 0; } else if ( ( ucDataBits == 8 ) && ( eParity != MB_PAR_NONE ) ) { USART_InitStructure.USART_WordLength = USART_WordLength_9b; is

移植Modbus到STM32F103(2):移植FreeModbus到usart3并运行示例代码

筅森魡賤 提交于 2020-04-09 09:48:29
FreeModbus是Modbus的一个被广泛移植的实现。其源码在 github ,最新版是1.6。 FreeModbus支持Modbus功能码里的0x01~0x06,0x0F~0x11和0x17,对其他功能码比如异常诊断和事件计数等并没有提供支持,但并不影响Modbus的使用。 另外,FreeModbus仅提供了服务器(从机)的实现,客户端(主机)的实现可以在github上找到一些。 FreeModbus的文件主要在两个文件夹里,一个在/modbus/,一个在/demo/BARE/。前一个文件夹是协议的上层功能,包括协议的几个应用函数,基本不用修改。第二个文件夹有一个demo.c,是一个运行示例,也不需要修改。需要修改的是/demo/BARE/port/里的内容,这几个文件的功能完成了硬件的配置,包括串口和定时器的初始化,以及中断函数等。 对于STM32,FreeModbus的源码并没有给出示例,不过网上的相关移植已经有很多了,很容易就能找到,所以只需要复制/demo/BARE/port里的内容,然后稍微修改一下就好了。 一个个文件来说。 第一个是port.h,只需要包含库文件"stm32f10x.h",并增加临界区的进入和离开指令即可。我这里使用的是__set_PRIMASK函数,关闭除了NMI和硬fault以外的中断。 #define ENTER_CRITICAL