0%

本章是整理知识内容,为强化知识长期更新。

以下部分超链接需要科学上网。

ModBus

modbus是一种通讯协议,是Modicon公司1979年为使用可编程逻辑控制器(PLC)通讯而发表。Modbus是工业领域通讯协议的业界标准之一,目前也我国国家标准工业通讯协议中的重要成员之一。

介绍

  • Modbus采用主从(Master-Salve)通信模式,仅有主设备(Master)能对传输进行初始化,从设备(Slave)根据主设备的请求进行应答。 __在主从关系中,通信总是成对发生。一个设备必须发起请求,然后等待响应 - 并且发起设备(主设备)负责发起每次交互。 通常,主设备是人机界面(HMI)或监控和数据采集(SCADA)系统,从设备是传感器、可编程逻辑控制器(PLC)或可编程自动化控制器(PAC)。 这些请求和响应的内容以及发送这些消息的网络层由协议的不同层来定义__。

    • 在串行链路的主从通信中,Modbus主设备可以连接一个或N(最大为247)个从设备,主从设备之间的通信包括单播模式和广播模式。
    • 在广播模式中,Modbus主设备可同时向多个从设备发送请求(设备地址0用于广播模式),从设备对广播请求不进行响应。
    • 在单播模式中,主设备发送请求至某个特定的从设备(每个Modbus从设备具有唯一地址),请求的消息帧中会包含功能代码和数据,比如功能代码“01”用来读取离散量线圈的状态。从设备接到请求后,进行应答并把消息反馈主设备。
    • __主设备不发送数据,从数据是不会自己发出数据的;即必须是主设备发出查询请求才能建立通讯。 __
  • 消息帧校验方式

    • ASCII消息帧:LRC(纵向冗长检测)
    • CRCi消息帧:CRC(循环冗长检测)
  • ModBus是OSI模型第七层上即__应用层__报文传输协议。

  • ModBus支持多工业设备、包括PLCDSC变频器、智能仪表等都在应用。

  • ModBus支持多种电气接口,如RS-232RS-485等,还可以在各种介质上传送,如双绞线、光纤、无线。

  • ModBus协议完全免费;帧格式简单,紧凑。

  • ModBus对线缆的要求、长度、波特率,终端电阻,接地,连接器,通信状态的LED指示,都有电气标准。

  • ModBus数据可以分为两大类,分别为Coil和Register,每一种数据,根据读写方式的不同,又可细分为两种(只读,读写)。

    • Coli是位(bit)变量。
    • Register是整型(word ,即 16 - bit )。
Primary tabels Object Type Type Of comments
Discretes Input 离线输入量 Single bit 只读 IO系统提供这种类型的数据
Coils 线圈 Single bit 只写 通用应用程序改变这种类型的数据
Input Registers 输入寄存器 16-bit word 只读 IO系统提供这种类型的数据
Holding Registers 保持寄存器 16-bit word 只写 通用应用程序改变这种类型的数据
阅读全文 »

本章是整理知识内容,为强化知识长期更新。

  • MySQL基础(一) 已经介绍了MYSQL最常用基础的操作,由于篇幅已经很大,所以分开记录。

MySql基础操作

子查询与连接

在MYSQL实际操作中,最大的操作就是查询,下面就关于子查询和链接做记录。

子查询

  • 子查询(SubQuery)是指出现在其它SQL语句中的SELECT子句。比如
1
2
SELECT * FROM table_1 AS t1 WHERE columns_1 = (SELECT columns_2 FROM table_2 AS t2);
# 这里的SELECT * FROM table_1 AS t1 称之为 Outer Query/Outer Statement;SELECT columns_2 FROM table_2 AS t2 成为 SubQuery。
  • 子查询严格以上是指嵌套在查询内部,且必须始终出现在圆括号内
  • 子查询可以包含多个关键字:DISTINCTGROUP BYORDER BYLIMIT等函数。
  • 子查询的外层可以是:INSERTUPDATESELECT DELETESETDO等操作。
  • 子查询可以返回结果,这个结果可以是标量一行一列,或者子查询。
  • 子查询的引发条件:这里需要特别注意,并不是显示的才是子查询。
    • 使用比较运算符的子查询:= , > , < , >= , <= , <> , != , <=>
    • 使用结构语法:operand comparison_operator subquery ,可以使用一下修饰符来配合比较运算符。
      • operand comparison_operator ANY(subquery)
      • operand comparison_operator SOME(subquery)
      • operand comparison_operator ALL(subquery)
运算符\关键字 ANY SOME ALL
>>= 最大值 最小值 最大
<<= 最大值 最大值 最小值
= 任意值 任意值
<>!= 任意值
阅读全文 »

本章是整理知识内容,为强化知识长期更新。

Mysql介绍

  • Mysql数据库是一种C\S结构,就是客户端和服务端。
  • 关键字
    1. DB : DataBase 数据库
    2. DBMS:Database Management System数据库管理系统
    3. DBS:Database System = DBMS + DB数据库系统
    4. DBA:Database Administrator 数据库管理员
    5. 行\列:二维表中存储的数据。
      1. row\record (一条记录)。
      2. column\field(一个字段)。
  • SQL

SQL:Structured Query Language,结构化查询语言(数据以查询为主,99% 都是在进行查询操作),SQL是关系型数据库的操作指令,是一种约束,但不强制,类似与W3C,所以不同的关系型数据SQL语句可能会有一定的差异性。

  • DDL:Data Definition Language数据定义语言,用来维护存储数据的结构(数据库、表),代表指令为createdropalter等。
  • DML:Data Manipulation Language,数据操作语言,用来对数据进行操作(表中的内容)代表指令为insertdeleteupdate等,不过在 DML 内部又单独进行了一个分类,即 DQL(Data Query Language),数据查询语言,代表指令为select
  • DCL:Data Control Language,数据控制语言,主要是负责(用户)权限管理,代表指令为grantrevoke等。
  • TPL:``,事物控制语言

Mysql基本操作

本章部分内容在Centos中实现,Centos7-MySql部署记录

交互方式

阅读全文 »

本章是整理知识内容,为强化知识长期更新。

Stack

  • 栈是元素的集合,其包含了两个基本操作:push 操作可以用于将元素压入栈,pop 操作可以将栈顶元素移除。
  • 遵循后入先出(LIFO)原则。
  • 时间复杂度:
  • 索引: O(n)
  • 搜索: O(n)
  • 插入: O(1)
  • 移除: O(1)

Stack

Collection成员之一,继承了Vector,通过重写Vector来实现LIFO(Last-in-First-out 后进先出)特性。

概述

  • Java Stack是LIFO对象。它扩展了Vector类。

源码分析Stack

阅读全文 »

本章是整理知识内容,为强化知识长期更新。

Vector

概述

  • Vector是Java Collection Franmework成员。
  • 列队允许添加重复元素
  • 列队允许null的存在
  • 列队从0开始,也就是列队头部的下标是0。
  • 列队支持泛型,这样可以避免ClassCastException异常。

与ArrayList的区别

阅读全文 »

参考文献

RabbitMQ介绍

RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。
AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。

背景

RabbitMQ 是流行的开源消息队列系统,是 AMQP(Advanced Message Queuing Protocol 高级消息队列协议)的标准实现,用 erlang 语言开发。RabbitMQ 具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用。

安装

RabbitMQ 基于erlang。需要先安装erlang环境。

阅读全文 »