modbus

日志审计系统设计

佐手、 提交于 2020-08-15 12:22:38
背景 萨班斯(SOX)法案。在美国上市公司必须遵循的“萨班斯(SOX)法案” 中要求对企业内部网络信息系统进行评估,其中涉及对业务系统操作、数据库访问等业务行为的审计。 日志审计模型 系统架构参考 四层模型 日志审计类别 1) HTTP 会话审计 从流量中还原 HTTP 会话数据,并根据会话特征进一步深度解析 HTTP BBS访问、HTTP 网页标题、HTTP 威胁情报、HTTP DGA 域名(DGA 域名库、机器学习)、搜索关键词及其他 HTTP 会话等,数据中至少包含请求方法、返回值、主机名、网页地址、用户代理、语言、服务器类型等数据。 以上Ngnix日志结构化示例 从结构化的视角看日志,可以从内在属性和外在属性着手。 内在属性是从时间戳、字段、字段命名等日志内容本身所具备的信息内容的角度,对日志进行分析。 外在属性是从来源、归属分类、资产信息等维度来分析。来源是指日志来自哪台主机、哪个 IP;归属分类是从日志的所属系统及日志用途等方面看日志;日志的资产信息是指日志的负责人、负责人的联系方式等相关信息,可以通过平台将日志与负责人进行关联,以便事故发生后可以直接通知到相关负责人 2) DNS 会话审计 从流量中还原 DNS 会话数据,并根据会话特征进一步深度解析 DNS 威胁情报、DNS DGA 域名、DNS 解码错误、DNS 解析错误、DNS 解析超时,数据中至少包含请求域名

OPCUA+MQTT构建物联网通用框架

你。 提交于 2020-08-15 10:02:15
写在前面: 为了应对标准化和跨平台的趋势,更好的推广OPC,OPC基金会在OPCDA成功应用的基础上推出了一个新的OPC标准——OPC UA,OPCUA不再基于分布式组件对象模型(DCOM),而是以面向服务架构(SOA)为基础,因此,在未来的若干年中,OPCUA将逐步取代OPCDA,成为新一代的OPC标准,助力工业4.0。 而提起MQTT,或许大家有些陌生。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。具有轻量、简单、开放和易于实现的特点,尤其在物联网IOT领域应用非常广泛。 物联网一直都是一个很热门的话题,而数据上云,也是现在工业上很普遍的一个需求。至于如何实现,各个厂家都提供了各种不同的解决方案,无分好坏,最适合的就是最好的。 刚看完一篇名为《OPCUA+MQTT=物联网扩展的热门组合》的公众号文章之后,文思泉涌,想着如何将OPCUA与MQTT联合起来,构建一个物联网通用框架,实现数据远传。 整体网络架构 很多时候,我们的需求是这样的:现场有N台不同的设备或系统,每台设备或者系统的协议是各不相同的,希望可以用一种通用并且简单的方法,将这些数据传到云端,实现远程访问。 这样的需求,其实是物联网最典型的应用之一,那么采用OPCUA+MQTT或许是个不错的选择,整体的框架设计如下: 图表 1 整体网络架构 为了实现整体功能,这里的设备层,采用Modbus Slave

Pt100/Pt1000温度信号转RS485/232远程io采集隔离转换模块

时间秒杀一切 提交于 2020-08-15 06:49:18
产品特点: ● 5路温度信号采集,隔离转换 RS-485/232输出 ● 采用24位AD转换器,测量精度优于0.05% ● 四线制测量,长线补偿,测量精度高 ● 支持热电阻断线检测功能 ● 可编程设定Pt100或Pt1000信号输入 ● 通过RS-485/232接口可以程控校准模块精度 ● 信号输入 / 输出之间隔离耐压3000VDC ● 宽电源供电范围:8 ~ 32VDC ● 标准DIN35导轨安装,方便集中布线 ● 用户可编程设置模块地址、波特率等 ● 支持Modbus RTU 通讯协议,自动识别协议 典型应用: ● 多路温度信号测量与监测 ● RS-485远程I/O,数据采集 ● 智能楼宇控制、安防工程等应用系统 ● RS-232/485总线工业自动化控制系统 ● 工业现场信号隔离及长线传输 ● 设备运行监测 ● 传感器信号的测量 ● 工业现场数据的获取与记录 ● 医疗、工控产品开发 产品概述: IBF25产品实现传感器和主机之间的多路信号采集,用来检测最多5路温度信号。IBF25系列产品可应用在 RS-232/485总线工业自动化控制系统,温度信号测量、监测和控制等等。 产品包括电源隔离,信号隔离、线性化,A/D转换和RS-485串行通信。每个串口最多可接255只 IBF25系列模块,通讯方式采用ASCII码通讯协议或MODBUS RTU通讯协议,地址和波特率可由代码设置

符合Modbus协议的4-20mA信号采集方案

泄露秘密 提交于 2020-08-14 03:29:25
本方案是昆仑通态触摸屏与4台DTD433FC模拟量信号无线485传输模块进行无线 Modbus 通信的实现方法。本方案中昆仑通态触摸屏作为主站显示各从站的模拟量信号,传感器、DCS、PLC、智能仪表等4个设备作为Modbus从站输出模拟量信号。方案中采用模拟量信号无线485传输模块——DTD433FC与无线通信数据终端——DTD433MC,作为实现无线通讯的硬件设备。 无线系统构成示意图 ▼ 通过 DTD433FC和DTD433MC可以很方便的实现无线 MODBUS 主从网络,无需更改网络参数和设备程序,可以直接替换有线连接。 一、测试设备与参数 1. 硬件环境搭建 昆仑通态触摸屏TPC7062TD *1台 模拟量信号发生器*20个(实际使用中为用户模拟量输出设备) 无线数据终端(主站设备)DTD433MC*1块 模拟量信号无线485传输模块(从站设备)DTD433FC-4 3块,DTD433FC-8 1块 2. 测试参数 通讯协议:Modbus RTU协议 主从关系:1主4从 主站通讯接口:Rs485接口(两线制) 从站通讯接口:模拟量4-20mA信号输入(AI) 供电:9-24VDC 传输距离:100米,500米,1KM,3KM,20KM 二、下载工程 完整版例程添加QQ598075900 三、MCGS触摸屏与DTD433MC主站接线 1. 主站接线示意图 2. 主站接线说明

万变不离其宗之UART要点总结

本秂侑毒 提交于 2020-08-13 17:17:11
[导读] 单片机开发串口是应用最为广泛的通信接口,也是最为简单的通信接口之一,但是其中的一些要点你是否明了呢?来看看本人对串口的一些总结,当然这个总结并不能面面俱到,只是将个人认为具有共性以及相对比较重要的点做了些梳理。 啥是串口? 首先这玩意儿分两种: 通用异步收发器(UART) 是用于异步串行通信的一种物理层标准,其中数据格式和传输速度是可配置的。 通用同步收发器(USART) 是一种串行接口设备,可以对其进行编程以进行 异步 或 同步 通信。 数据格式 线上空闲、无数据状态为常高电平,故逻辑低定义为起始位。 起始位:总是1位 数据位:常见的有8位或9位。 校验位 奇校验 偶校验 无校验 停止位: 1位 2位 波特率:bit rate 就是位/秒的概念,就是1秒传多少位的概念。常见的波特率有哪些呢? 这里须注意的要点: 一个有效字节的传输时间怎么算? \[T=位数*\frac{1}{波特率} \] 比如9600下,1位起始位,8位数据位,奇校验,1位停止位,则 \[T=(1+8+1+1)*\frac{1}{9600}=0.00114583秒 \] 为什么要理解清楚这个概念呢,因为在应用中需要计算数据吞吐率问题,就比如一个应用是数据采集串口传输问题,需要计算采集的位速率需要小于或等于传输波特率,否则数据就来不及传。当然如果说你有足够大的缓冲区可以临时存储,但是如果进来太快

CRC校验查表法原理及实现(CRC-16)

做~自己de王妃 提交于 2020-08-13 03:33:00
绪论 在网上浏览了很多关于CRC校验的文章,基本上都是针对CRC校验原理的阐述以及关于CRC校验查表法的实际应用以及具体软件实现方法。 至于查的表是怎么来的,软件为什么要这样实现很多文章并没有说明 。本篇文章就针对这两点问题进行总结和归纳,有错误的地方欢迎大家评论区指出,不胜感激。 注意:本篇文章不涉及CRC校验的基本原理,如果不了解CRC的基本原理,请移步至如下链接: CRC查找表法推导及代码实现比较 以下的CRC查表法的软件实现及推导过程均建立在modbusRTU协议使用的CRC-16标准。 查表法的表是怎么来的? CRC16算法的生成多项式 x 16 + x 15 + x 2 + 1 x^{16}+x^{15}+x^2+1 x 1 6 + x 1 5 + x 2 + 1 ,十六进制表示为0x8005。 CRC16常见的表格中的数据是按照先传输LSB,消息右移进寄存器来计算的。因此需要判断寄存器的最低位LSB,同时要将0x8005按位颠倒后(0xA001)根据LSB的情况决定是否与寄存器异或即可。 CRC16的表格中对应的数依次为0~255计算出来的CRC值,因此,此处只选取其中一两个数作为实例计算CRC值。 具体步骤如下所示: 1)从0~255中选取需要计算的数,将其对应的十六进制数放入一个长度为16的寄存器的低八位,高八位填充0; 2)如果寄存器的末位LSB为1

S7通信协议之你不知道的事儿

只愿长相守 提交于 2020-08-12 23:58:51
在电气学习的路上,西门子PLC应该是我的启蒙PLC,从早期的S7-300/400 PLC搭建Profibus-DP网络开始接触,到后来的S7-200Smart PLC,再到现在的S7-1200/1500 PLC博途软件,基本上西门子的每款PLC都接触并使用过。 在上位机开发的路上,西门子PLC也一直是我钟爱的一个品牌,仍然记得刚开始做的第一个上位机就是基于S7-300 PLC的S7协议。最近又将S7协议巩固了一遍,发现了一些自己之前都不知道的事,这才发现,西门子S7协议是非常强大的一个协议。 1. S7协议之布尔操作 对于布尔操作,很多协议都有,但是这里的布尔操作是指寄存器布尔,比如DB100.DBX0.0,很多时候,我们都是通过先读取DB100.DBB0的值,再通过位运算结果,写入到DB100.DBB0中,实现DB100.DBX0.0的操作,但是这种方式有弊端,第一:每次操作一个布尔值都需要与PLC进行两次数据交互,第二:安全性和稳定性无法保障,你不知道在你读取和写入之间,这个字节的值是否已经发生了改变。 这样的问题也存在于Modbus协议的寄存器位操作,如40001.05,三菱、欧姆龙的寄存器位操作,如D100.06、W12.04,给上位机开发者带来很多苦恼。 但是S7协议支持直接位操作,有专门的报文指令实现这样的功能。 2. S7协议之PDU读取

万变不离其宗之UART要点总结

女生的网名这么多〃 提交于 2020-08-12 02:14:54
[导读] 单片机开发串口是应用最为广泛的通信接口,也是最为简单的通信接口之一,但是其中的一些要点你是否明了呢?来看看本人对串口的一些总结,当然这个总结并不能面面俱到,只是将个人认为具有共性以及相对比较重要的点做了些梳理。 啥是串口? 首先这玩意儿分两种: 通用异步收发器(UART) 是用于异步串行通信的一种物理层标准,其中数据格式和传输速度是可配置的。 通用同步收发器(USART) 是一种串行接口设备,可以对其进行编程以进行 异步 或 同步 通信。 数据格式 线上空闲、无数据状态为常高电平,故逻辑低定义为起始位。 起始位:总是1位 数据位:常见的有8位或9位。 校验位 奇校验 偶校验 无校验 停止位: 1位 2位 波特率:bit rate 就是位/秒的概念,就是1秒传多少位的概念。常见的波特率有哪些呢? 这里须注意的要点: 一个有效字节的传输时间怎么算? \[T=位数*\frac{1}{波特率} \] 比如9600下,1位起始位,8位数据位,奇校验,1位停止位,则 \[T=(1+8+1+1)*\frac{1}{9600}=0.00114583秒 \] 为什么要理解清楚这个概念呢,因为在应用中需要计算数据吞吐率问题,就比如一个应用是数据采集串口传输问题,需要计算采集的位速率需要小于或等于传输波特率,否则数据就来不及传。当然如果说你有足够大的缓冲区可以临时存储,但是如果进来太快

《80c51单片机实用技术》邹久朋学习笔记

自古美人都是妖i 提交于 2020-08-11 10:19:14
抽空学习了这本书,不然买了就是浪费了,择其重点而学之。 1、讲述了单片机的接口技术,数中讲述了8051,其实适用于大部分的单片机,原理都是相同的,但也有区别,比如如果单片机中GPIO引脚比8051功能增强或者有上拉电阻等,这样的接口电路就有区别了,但是书中讲的基础有助于项目中实际应用。也包括串口存储设备,串口设备,光耦隔离等康电器隔离的设备等 2、8051的汇编编程的分析,这部分目前来讲,已经不用汇编了,但是中断这块的讲解,还是有助于单片机开发的,书中提到单片机的中断单片机系统中,十分重要的部分,离开了中断,那么现实社会中的很多实际产品将不在存在,正因中断的存在,才让单片机系统使用越来越广泛,兼顾实时性和可靠性,但是中断也要使用好,理解好,才能开发好的产品。 中断是随时发生的,随时中断main函数的,因此原子操作就十分重要了,不能在main函数中、中断中都有对一个变量进行写的操作。通常的写法如下: 书中提到,中断程序尽量快进快出,设置标志位后退出中断,在main函数中判断标志位来进行处理,同时清零标志,和时序相关的,就在定时器里执行,不要两边兼顾,因为中断是随机的,会在main函数执行到一半的地方进行中断,退出中断后,又回到main函数中执行相关的函数,而我们的想法是不能在执行main函数的相关子程序的,从而导致出现bug,这个bug在我自己的项目出现过

NModBus的使用

China☆狼群 提交于 2020-08-11 04:34:00
  前言:最近在做一个项目,需要使用ModBus RTU与PLC进行通讯,现在将使用过程记录,以便备查。 一、什么是ModBus通讯协议   Modbus协议是应用于电子控制器上的一种通用语言,此协议支持传统的RS-232、RS-422、RS-485和以太网设备。   ModBus功能码 01 READ COIL STATUS 02 READ INPUT STATUS 03 READ HOLDING REGISTER 04 READ INPUT REGISTER 05 WRITE SINGLE COIL 06 WRITE SINGLE REGISTER 15 WRITE MULTIPLE COIL 16 WRITE MULTIPLE REGISTER 二、ModBus通讯协议的.Net实现     因为实现并不困难,网上有许多网友自己的实现,但在这里我推荐一个github的开源实现类库:NModBus4,github地址:https://github.com/NModbus4/NModbus4。针对TCP、UDP、RTU等的ModBus通讯方式都有实现。          读写方法: 方法名 作用 所需参数 返回值 对应功能码 ReadCoils 读取DO的状态 从站地址(8位) byte slaveAddress 起始地址(16位) ushort startAddress