通信协议
文章平均质量分 72
码灵
爱码。
平时学习新的知识,看到了新的东西,记录下来。
展开
-
IEC101、IEC103、IEC 104区别
IEC 101:适用于串行通信,主要用于较短距离的SCADA系统。IEC 103:专为继电保护设备设计,优化了继电器等设备之间的通信。IEC 104:基于TCP/IP,适用于现代SCADA系统,支持长距离、高速通信。原创 2024-09-18 14:42:29 · 455 阅读 · 0 评论 -
DF1通信协议JAVA开发
本篇结合DF1协议文档,利用DF1 -PLC仿真器实现半双工、全双工读取数据,使用JAVA开发,支持Micro-Logix系列、SLC500、SLC5/03、SLC5/04、1774-PLC、PLC-2、PLC3、PLC-5、PLC-5/250PLC-5/VME等PLC,附件提供代码Demo和仿真器。原创 2024-08-21 10:53:25 · 126 阅读 · 0 评论 -
通讯小知识
两者传输内容一致,只是形式不同,因为二进制相对于ASCII码形式一帧的数据长度更短,且数据不需要转换,所以通讯效率更高,推荐使用二进制方式。原创 2024-07-11 10:51:14 · 359 阅读 · 0 评论 -
bacnet 对PresentValue写入和释放是什么意思
BACnet(Building Automation and Control Networks)是一种专为楼宇自动化和控制网络设计的通信协议。它允许不同的楼宇自动化设备和系统之间互相通信,以实现监控、控制和管理建筑中的各种设施,如HVAC(供暖、通风和空调系统)、照明、安全系统等。在BACnet中,是一个非常重要的属性,它表示了设备或系统当前的状态或值。这个属性可以被读取(即,从设备获取当前状态或值),也可以被写入(即,改变设备或系统的状态或值)。原创 2024-07-10 15:47:42 · 90 阅读 · 0 评论 -
Java串口框架jSerialComm替换rxtxcomm
最开始使用的是rxtxcomm框架,部署时还要手动放驱动文件,而且后面没有进行维护,导致一些一些新系统不再支持,需要手动打包。原创 2024-06-20 11:04:23 · 372 阅读 · 0 评论 -
org.eclipse.milo opcua 库查看记录
browse 默认读取了Method、Object、Variable类型节点,References为HierarchicalReferences。读取时指定HierarchicalReferences就可以读取HierarchicalReferences及以下所有类型的节点。在OPC UA Server中,所有Node之间都是使用Reference进行连接的。原创 2024-06-18 08:40:48 · 351 阅读 · 0 评论 -
USB转串口针线 USB四根线
总的来说,RXD+ 和 RXD- 用于数据的接收,而T/R+ 和 T/R- 则与RS-485接口的数据传输相关。其中,RXD+代表数据接收的正端,而RXD-代表数据接收的负端。绿色:代表USB数据线(正),其标识可能为Data+、USB Port +、USBD+、PD+、USBDT+等。其中,T/R+代表A+,即RS-485接口的正线;而T/R-代表B-,即RS-485接口的负线。在USB 2.0规范中,VCC线通常为红色。白色:代表USB数据线(负),其标识可能为Data-或USB Port -。原创 2024-05-31 17:07:36 · 1999 阅读 · 0 评论 -
RTU远程终端控制系统
SCADA系统可以设计满足各种应用(水、电、气、报警、通信、保安等等),并满足顾客要求的设计指标和操作概念。与常用的可编程控制器PLC相比,RTU通常要具有优良的通讯能力和更大的存储容量,适用于更恶劣的温度和湿度环境,提供更多的计算功能。远程终端设备(RTU)是安装在远程现场的电子设备,用来监视和测量安装在远程现场的传感器和设备。这取决于被控现场的性质、系统的复杂性、对数据通信的要求、实时报警报告、模拟信号测量精度、状态监控、设备的调节控制和开关控制。2、用于各种恶劣的工业现场。原创 2024-05-27 16:29:41 · 263 阅读 · 0 评论 -
BCD编码Java实现
最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在称之为“8421码”(日常所说的BCD码大都是指8421BCD码形式)。除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:有权BCD码,如:8421(最常用)、2421、5421…无权BCD码,如:余3码。8421码java实现如下。原创 2024-05-22 10:15:12 · 429 阅读 · 0 评论 -
Profinet IO开发资料了解
profinet原创 2024-05-16 15:53:47 · 63 阅读 · 0 评论 -
Profinet中设备如何实现采集监控?
Profinet工业以太网(lndustrial Ethernet)是西门子公司提出的一种基于以太网的工业通讯模式,它遵循国际标准IEEE802.3。作为第三方,针对Profinet网络中设备如何实现数据采集监控?我们需要开发哪些协议?后续以西门子系列设备举例。Profinet网络兼容标准以太网。Profinet网络中的系统分为Profinet IO(分布式自动化系统)、Profinet CBA(组件式自动化系统)。在Profinet 自动化系统中,主要包括监视器、控制器、设备。原创 2024-05-16 15:51:14 · 743 阅读 · 1 评论 -
利用CX-ONE搭建omron PLC仿真环境
设置串口通讯,选择“Real Comms”,选择本地串口名称(可以使用串口助手,创建虚拟串口)CX-Simulator,omron PLC仿真软件。找到“CX-Simulator”打开。选择“Controller Link”,点击“Connect”设置网络类型,设定虚拟PLC的FINS address。打开omron 组态软件CX-Programmer。选择与CX-Simulato 创建PLC相同类型。必须处于“编程”模式下,才能将值推送到PLC。HostLink 请求D0000数据。原创 2023-05-22 17:08:33 · 1527 阅读 · 1 评论 -
浮点数据如何用二进制表示的?
在二进制表示中,一个浮点数可以表示为:±X_n.X_{n-1}...X_0X_{-1}X_{-2}...X_{-m}×2^n其中,X_iX_iXi只能是0或1,n是尾数位的长度,m是小数部分的长度。总的来说,二进制表示浮点数的原理是通过将浮点数转换为科学记数法的形式,并用二进制数来表示符号位、指数位和尾数位,从而实现浮点数的二进制表示。其中,最左边的0是符号位,接下来的8位是指数位(01111110,表示指数126),最后的23位是尾数位(01000000000000000000000)。原创 2024-03-04 13:17:00 · 755 阅读 · 1 评论 -
CRC16详解和Java实现
CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。原创 2024-02-28 14:15:02 · 3605 阅读 · 1 评论 -
什么是网络?
A 将源 MAC 地址(AAAA)与网关 MAC 地址(ABAB)封装在数据链路层头部,又将源 IP 地址(192.168.0.1)和目的 IP 地址(192.168.2.2)(注意这里千万不要以为填写的是默认网关的 IP 地址,从始至终这个数据包的两个 IP 地址都是不变的,只有 MAC 地址在不断变化)封装在网络层头部,然后发包。所以如果 A 给 C 发消息,A 和 C 的 IP 地址分别 & A 机器配置的子网掩码,发现不相等,则 A 认为 C 和自己不在同一个子网,于是把包发给路由器,就不管了,原创 2024-01-24 17:25:46 · 1121 阅读 · 0 评论 -
大端和小端模式
大端模式,就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。小端模式,就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。原创 2023-12-12 10:44:28 · 1005 阅读 · 0 评论 -
Modbus RTU和Modbus TCP的区别 深入篇
1、发送指令:01 03 76 83 00 0C AE 6F解析:01为从机地址(地址码),03 为功能码(03表示:读),76 83 为寄存器地址[起始地址][真实的寄存器地址-1],00 0C 为读取寄存器的个数,AE 6F 为CRC校验。2、接收指令:01 03 18 00 55 00 AA FF FF FF FF 01 2D FF FF FF FF FF FF 00 55 FF FF FF FF FF FF BA 58解析:01 为从机地址(地址码),原创 2023-12-12 10:33:14 · 7721 阅读 · 1 评论 -
modbus rtu通讯-T1.5以及T3.5时间间隔
串口在接收到一个字符(假设字符’a’)时便开始计时,时间记为Time1,在接收到下一个字符(假设字符‘b’)时,时间记为Time2。据我用示波器观察,在一个帧之内,字节和字节之间也就是停止位和起始位,字节和字节是紧密连接在一起的。T3.5是用来描述两个不同modbus报文帧之间的传输间隔时间(当前数据帧的结束字符与下一个数据帧的起始字符传输时间间隔)一般,为了简单起见,可以将传输45Bit(位)的时间四舍五入后的整型值作为两个数据帧之间的时间间隔,并以此来判断报文接收的完整性。在串口接收的连续字符流之中。原创 2023-12-12 10:20:00 · 4010 阅读 · 0 评论 -
IEC104规约(二)协议报文解析
00 00 00(信息体地址)01(毫秒低位)02(毫秒高位)03(分钟)04(时)81(日与星期)09(月)05(年)00 00 00(信息体地址)**(毫秒低位)**(毫秒高位)**(分钟)04(时)81(日与星期)09(月)05(年)ad(毫秒低位)39(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)2f(毫秒低位)40(毫秒高位)1c(分钟)10(时)7a(日与星期)0b(月)05(年)05 0b 00(信息体地址,遥控号=0xb05-0xb01=4)02(控合)原创 2023-12-12 08:43:36 · 2324 阅读 · 0 评论 -
IEC104规约(一)协议结构阐述
而在从站主动上传变化数据时,因为地址不连续,采用SQ=0。Tips:测试U帧一般用于子站判断主站是否还在连接子站,主站判断子站是否还在运行,保证数据传输的畅通性;Tips:一个apdu中信息体中的所有数据的类型都是一致的,并且数据类型在类型标识这个位置标识。SQ = 1 : 信息对象的地址连续 (只有第一个信息对象有地址,其他对象的地址就是累加1)SQ = 0 :信息对象的地址不连续(意思就是每个信息对象都会一个对象地址)比如:子站发送U帧测试(激活),主站收到测试U帧就会回复一个U帧(确认)原创 2023-12-11 17:25:00 · 2557 阅读 · 0 评论 -
GPS纪元概念
为了保持GPS时间与国际原子时(TAI)和协调世界时(UTC)的同步,GPS引入了跳秒调整。总体而言,GPS纪元是一个时间标准,用于卫星导航系统,其起点是1980年1月6日。由于GPS周数溢出和跳秒调整,处理GPS时间的设备需要考虑这些因素,以确保准确的时间测量和协调。GPS纪元的起始时间是1980年1月6日0时0分0秒(UTC)。GPS时间是按周计算的。为了更精确地表示时间,GPS使用周内秒来表示一周内的时间。当我们提到"GPS纪元"时,通常指的是全球定位系统(GPS)时间纪元。原创 2023-11-24 10:39:54 · 836 阅读 · 0 评论 -
LoRa和LoRaWAN详细介绍
LoRa技术是由Semtech公司开发,基于扩频频移键控(CSS)调制,这种调制技术可以实现在不同频率上发送长距离和低功耗的信号。通过调整发送功率和传输速率,LoRa设备可以适应不同的应用场景和需求。LoRaWAN(LoRa Wide Area Network)则是基于LoRa射频技术构建的一种低功耗、广域通信协议,用于连接和管理广域范围内的LoRaWAN设备。LoRaWAN为低功耗、长距离、兼容性的物联网通信提供了一种标准化的解决方案。图2 LoRaWAN协议结构层次。原创 2023-10-18 14:34:51 · 1246 阅读 · 0 评论 -
PLC和工控机的网络特性
如协同工作的驱动系统,焊接控制,运动控制,视觉系统,复杂的批次控制,有大量数据传送要求的过程控制系统,有多个控制器和人机界面共存的系统等。在生产者/消费者模式下,数据被分配一个***的标识,根据具体的标识,网络上多个不同的节点可以接收到来自同一发送者的数据,其结果是,数据的传输更为经济,每个数据源一次性把数据发送到网络,其它节点选择性的收取这些数据,不浪费带宽,提高了系统生产率,通讯效率提高,数据只须产生一次,不管有多少个节点需要接收这个数据。数据经过同样的时间传送到不同的节点,可以实现通讯的***同步。原创 2023-10-10 14:58:35 · 263 阅读 · 0 评论 -
S7协议开发记录(JAVA)
目录1 寻找开源库Snap72 寻找仿真环境2.1 仿真数据2.2添加测试数据3 开发ing4 目前测试结果知识点知识点1 S7-200 SMART和S7-200 区别?知识点2 Go使用gos7实现西门子PLC通讯知识点3 S7协议详细介绍知识点4 TSAP知识点5 参考力控报文Snap7是一个基于s7通信协议的开源软件包,该软件包封装了S7通信的底层协议,通过编程与西门子S7系列PLC进行通信。Snap7官网地址:http://snap7.sourceforge.net/Snap7包支持西门子S7-20原创 2022-07-06 17:20:16 · 747 阅读 · 0 评论 -
S7通信协议的挑高点
知道PDU之后,那么一次性读取的字节长度,就是在PDU的基础上减去18,这个18是指包头包尾会有18个字节,这样我们就知道了一般的PLC,一次性能读取222个字节(240-18=222),但是对于S7-1516这样的PLC,我们一次性是可以读取942个字节的(960-18=942),这个一次性能读取的字节越长,越能提高上位机的通信效率。西门子S7协议是非常强大的一个协议。S7协议的一次性读取长度是根据PDU计算出来的,这个PDU的值是来自于PLC本身,不同型号的CPU,它的PDU是不一样的。原创 2023-09-21 15:31:13 · 450 阅读 · 2 评论 -
西门子 S7 协议解析
协议的地址(偏移量)是按照位来运算的,因此需要地址值乘以。(从第一个数据的前缀开始计算)(从偏移量后第一位开始计算),地址是实际地址乘以。原创 2023-09-21 15:23:29 · 823 阅读 · 0 评论 -
西门子S7协议介绍
它是可重放的,可以强制执行。[2b]由主站生成,每次新传输递增,用于链接对其请求的响应,Little-Endian(注意:这是WinCC,Step7和其他西门子程序的行为,它可能是随机的生成后,PLC只将其复制到回复中)这里必须注意的是,S7-1200/1500系列设备使用略有不同的方法,保护级别处理稍有不同,发送的密码明显更长(实际上是密码的哈希),但它仍然是不变的,可重放。[1b]用于确定变量的类型和长度(使用常用的S7类型,如REAL,BIT,BYTE,WORD,DWORD,COUNTER等)。原创 2023-09-21 15:20:11 · 2363 阅读 · 0 评论 -
S7协议规范常量
本主要介绍了S7通信协议中的常量和规定。接下来,文中提到了各种消息类型,包括Job Request(工作请求)、Ack(确认)、Ack-Data(确认数据)、以及Userdata(用户数据)等。然后,文中又列举了一些错误类别和错误代码,例如Header Error Class和Header Error Codes、Parameter Error Codes等,它们用于指示消息头或参数中可能存在的错误。总的来说,这些常量都是为了使S7通信协议在工业自动化领域中更加规范化、通用化和易于理解而设计的。原创 2023-09-21 15:15:54 · 643 阅读 · 0 评论 -
通讯协议介绍&CoAP 协议解析
如请求没有准确到达 CoAP 服务器(称作 “CoAP 请求丢失”),或服务器虽收到请求并返回响应,但响应未正确到达客户端(称作 “CoAP 响应丢失”),超过一定时间后,客户端就会将前一次 CoAP 请求判定为失败,并再次发送同样的 GET 请求,两次请求的首部和负载完全相同。,占8位(一个字节)。即使网络条件不好,也不会对发送速率进行调整,这样实现的弊端就是在网络条件不好的情况下可能会导致丢包,但是优点也很明显,在某些实时性要求高的场景(比如电话会议、直播等)就需要使用 UDP 而不是 TCP。原创 2023-09-15 17:00:43 · 5927 阅读 · 3 评论 -
CANopen扫盲
CANopen涵盖了上面五层:网络(寻址,路由),传输(端到端可靠性),会话(同步),表示(以标准方式编码的数据,数据表示)和应用。TPDO是来自节点(产生的)的数据,而RPDO是到达节点(消耗的)的数据。CANopen 采用了类似的思想,它将参数定义为对象,每个设备中都有一个对象字典,对象字典可以一个文件描述,它叫做EDS(Electronic data sheet),它采用了INI 文件格式。一个字节用于说明符,三个字节用于节点索引和子索引,四个字节用于传输中的实际数据,真正的数据只有4个字节了。原创 2023-09-15 15:15:18 · 2110 阅读 · 0 评论 -
IEC 61850扫盲
IEC61850需要对信息模型进行扩充,升级时,无需改变已采用的底层通信协议,只要改变具体的SCSM即可。③数据模型,通信服务和映射部分:IEC61850-7,IEC61850-8,IEC61850-9,标准最核心的部分,从技术实现角度描述了信息模型,通信服务接口模型,信息模型与实际通信网络的映射方法,实现了系统信息模型的统一,通信服务的统一和传输过程的一致。信息模型的每一层都定义为抽象的类,封装了相应的属性和服务,属性描述了这个类的所有实例的外部可视特征,而服务提供了访问类熟悉的方法。原创 2023-09-15 14:44:46 · 2081 阅读 · 0 评论 -
OPC HDA扫盲
请注意,FILETIME中可以合法表示的所有时间戳都是有效的时间戳,并且服务器可能不会返回E_INVALIDARG,因为时间戳超出了服务器拥有数据的范围。规范中描述的接口的体系结构和设计旨在支持其他语言的OPC服务器的开发。因此,对于不请求边界值的情况,如果从1:00到1:05,然后从1:05到1:10请求数据,则正好在1:05存在的值将被包括在第二请求中,但不包括在第一请求中。引用OPC历史数据服务器的客户端可能是简单的趋势包,只需要给定时间范围内的值,也可能是需要多种格式数据的复杂报告。原创 2023-09-15 10:36:54 · 459 阅读 · 0 评论 -
OPCHDA接口
此功能的目的是读取已修改/替换的历史记录中的值。当返回OPC_S_MOREDATA时,想要下一个dwNumValues值的客户端应再次调用ReadRaw,并将为该项返回的最旧值的时间戳作为新的htStartTime,同时保持htEndTime的原始值不变(如果需要相反的顺序,则反转htStartTime和htEndTime)。因此,如果客户端请求1997年1月1日至1997年10月1日的属性值,则服务器应在1997年1日返回该属性的值,而不是返回的第一个值是1997年1月份1日之后该属性的第一个新值。原创 2023-09-15 10:33:19 · 263 阅读 · 0 评论 -
OPCAE接口
一个或多个条件属于特定的事件源——事件通知的源。可选的IOPCEventSubscriptionMgt2接口用于设置/获取订阅当订阅的保活时间为非零时,服务器将确保客户端即使在没有要报告的新事件,通过以最小已知频率提供回调,客户端可以确保服务器和订阅的健康,而无需“ping服务器”(定期调用服务器方法的常见做法,例如IOPCEventServer::GetStatus())。OPC事件服务器通过重新发送最新的事件通知来支持这一要求,这些事件通知满足事件订阅中的过滤器,并且与活动和/或未确认的条件有关。原创 2023-09-14 17:35:46 · 768 阅读 · 0 评论 -
OPCAE扫盲
2)每个与条件相关的事件通知,需要确认的包括:条件名称、条件最近进入活动状态或转换为新的子条件的时间,以及事件通知的唯一标识Cookie。事件类别的名称必须为在事件服务器中是唯一的。例如LevelAlarm条件可能包括“HighAlarm”、“HighHighAlarm”和“LowAlarm”,以及“LowLowAlarm”子条件1。例如LevelAlarm条件可能包括“HighAlarm”、“HighHighAlarm”和“LowAlarm”,以及“LowLowAlarm”子条件1。条件也有相关的质量。原创 2023-09-14 17:33:35 · 1174 阅读 · 0 评论 -
OPCEnum作用&OPC常见通讯问题
c)指定用户: OPC Server以指定的用户账户认证,这种情况需要在OPC Server的计算机上存在着要指定的账户,而且对于OPC Client必须知道此用户。通过以上的操作,我们可以看到OPCENUM的作用就是枚举本地或远程服务器上OPC Server列表,最终的目的是获取OPC Server的ProgID,以创建OPCServer对象,实现OPC通讯。若是OPC Server允许多个用户访问时,那么带来的问题是随着不同用户的访问,就会打开多个实例,这样就会占用更多的计算机的资源。原创 2023-09-14 17:31:36 · 4168 阅读 · 0 评论 -
OPC DA如何实现跨平台
相较于OPC Classic,OPC UA在数据安全性、跨平台性、扩展性等方面有着更好的表现,这使得越来越多的企业开始考虑将现有的OPC Classic升级到OPC UA,以满足更高的数据传输性能和安全要求。OPC XML DA基于XML的web技术,采用SOAP作为对应用程序共享消息进行包装的通讯协议,实现OPC Server和OPC Client之间通过Http协议传输数据,使得数据很容易在不同平台间传输,并轻易实现在Internet上发布OPC数据。本文介绍OPC DA跨平台通讯的几种方案。原创 2023-09-14 17:28:11 · 1061 阅读 · 1 评论 -
OPC DCOM快速配置
另外的一个问题是硬件的抢占,如串口,当一个使用了,其它的用户就无法再使用。a.在右边的Windows的窗口里,找到需要配置的OPC Server,右击该Server,在弹出的菜单里选择属性选项,进行OPC Server的特殊设置,在OPC Server的特殊设置里仅Identity标签的内容需要修改,其它标签项可参考DCOM的宽泛设置。DCOM配置完毕后机器需要重启。一旦DCOM的宽泛配置设置完,就需要关注Server的DCOM的特殊设置,这里的设置最终将会不同于其它的OPC Server的设置。原创 2023-09-14 17:25:39 · 2324 阅读 · 0 评论 -
OPC是通讯协议吗&安全性
这种架构可以实现连接到外网和内网的两主机之间是完全网络断开的,从物理上进行了网络隔离,消除了数据链路的通信协议,剥离了TCP/IP协议,剥离了应用协议,在安全交换后进行了协议的恢复和重建。这个约定就是通信协议。7) 由于防火墙设置在内网与外网通信的信道上,并执行规定的安全策略,所以防火墙在提供安全防护的同时,也变成了网络通信的瓶颈,增加了网络传输延时,如果防火墙出现问题,那么内部网络就会受到严重威胁。网闸的指导思想与防火墙也有很大的不同,体现在防火墙的思路是在保障互联互通的前提下,尽可能安全;原创 2023-09-14 17:23:25 · 1771 阅读 · 0 评论 -
OPC发展历程
OPC 提出了一套统一的标准,采用典型的CLIENT/SERVER 模式,针对硬件设备的驱动程序由硬件厂商或专门的公司完成,提供具有统一OPC接口标准的SERVER 程序,用户只需按照OPC 标准编写CLIENT程序访问OPC SERVER,即可实现与硬件设备的通信。5)取消数据请求: 是取消特定数据请求的要求,如果数据请求是订阅请求,所有后续数据更新将被取消,如果不是订阅,则是请求服务器释放分配给这个请求的资源。为了防止数据的噪声被误认为它们的变化,引入了“死区”的概念,它稍微超过了干扰的最大可能幅度。原创 2023-09-14 17:15:51 · 388 阅读 · 0 评论