- 博客(1996)
- 问答 (2)
- 收藏
- 关注
转载 工业通讯协议(二)- EtherCAT
EtherCAT(Ethernet for Control Automation Technology)是一种在工业自动化中广泛使用的高性能以太网通信协议。它由德国的Beckhoff Automation公司在2003年开发,目的是用于控制系统中实现更快的数据交换。EtherCAT符合IEEE 802.3标准,并且是国际电工委员会(IEC)的公开标准,即IEC 61158和IEC 61784。高性能:EtherCAT协议设计用于高速数据交换,具有很低的通信延迟和高数据吞吐量。
2026-01-09 14:32:50
73
转载 EtherCAT (学习笔记)
运动控制系统处理机械系统中一个或多个坐标上的运动以及运动之间的协调,实现精确的位置控制、速度和加速度控制、转矩和力的控制等。单轴的运动控制系统可分为开环、半闭环和闭环伺服系统。多轴运动控制系统可以分成点位控制、连续轨迹控制和同步控制。EtherCAT从站设备在报文经过其节点时读取相应的数据报文,同样输入数据也是在报文经过时插入到报文中。整个过程报文只有几纳秒的时间延迟,实时性获得极大提高EtherCAT作为一种工业以太网总线,充分利用了以太网的全双工特性。
2026-01-09 14:31:39
100
转载 EtherCAT 的寻址方法: 顺序寻址(Positional Addressing)、节点寻址(Node Addressing)
EtherCAT 的寻址方法: 顺序寻址(Positional Addressing)、节点寻址(Node Addressing)_ecat的位置寻址原理-CSDN博客
2026-01-09 14:28:20
19
转载 在for循环中为STL容器插入与删除元素的注意事项
push_back() 存在类似的问题,那就是如果存储空间不够了,STL是完全有可能将数组拷贝到另外一个更大的空间的,这种情况下,原先的迭代器将毫无意义!这和集合的红黑树存储结构有关,有的情况下恰好不会报错,但如果A={1,2,3,4,5}A=\{1,2,3,4,5\}A={1,2,3,4,5},则会报错。前三次循环依次删除了1,3,51,3,51,3,5三个元素,因此可以推测出,该用法forforfor循环实际上记录了当前迭代元素的物理位置,当前的第0,1,20, 1, 20,1,2位置;
2026-01-06 15:34:11
13
转载 深入研究NNG(nanomsg)软件架构
NNG是开源的轻量级消息通信中间件。相对它的前辈(nanomsg,zeroMP), 它算是系列中的第三代产品了。同时支持Windows平台和Linux&Unix平台支持线程间通信,进程间通信,TCP通信,TLS通信等传输层。最牛B的是,用户接口是统一的,只是切换不同参数就实现了传输层的变化。也就是说,你之前的代码是线程间通信,只需要修改参数就能改为进程间通信或网络节点间通信。这简单是软件开发的银弹!非代理模式。也就是去中心化,所有的通信都不需要代理转发,也就不需要中心服务器。节省成本和复杂度!
2026-01-05 16:41:25
20
转载 can总线500kb速率,总线上最多可以承受多少帧报文 , 工控新人问下,can总线通讯的工作原理到底是什么呢?
本篇文章给大家谈谈 can总线500kb速率,总线上最多可以承受多少帧报文 ,以及 工控新人问下,can总线通讯的工作原理到底是什么呢?CAN 总线的通信距离最远可达10Km(位速率为5 kbps) ,通信速率最快可达 1Mbps(此时最长通信距离为40m)。报文传输CAN技术的报文传输为多主方式工作,网络上任意节点均可在任意时刻主动地向网络上其它节点 发送信息,而不分28000帧报文。
2026-01-05 13:58:57
52
转载 CAN总线负载率与节点数量关系的深度解析
CAN(Controller Area Network)是一种广泛应用于车载网络和工业控制系统的串行通信协议。其采用广播式、多主竞争型通信机制,所有节点共享同一物理总线。总线负载率(Bus Load Rate)是指单位时间内总线上传输的数据量占理论最大传输能力的百分比。总线负载率 = (Σ(报文长度 × 报文发送频率) / 总线带宽) × 100%其中,标准CAN帧包含11位标识符、数据域(0~8字节)、控制域、CRC等,总开销约为44~132位。
2026-01-05 13:24:55
36
转载 CAN FD网络中每秒最多可以发送多少帧报文?
CAN FD协议是由Bosch以及行业专家预研开发的,并于2012年发布。通过标准化对其进行了改进,现已纳入ISO 11898-1:2015。一开始的Bosch CAN FD版本(非ISO CAN FD)与ISO CAN FD是不兼容。1、增加了数据的长度CAN FD每个数据帧最多支持64个数据字节,而传统CAN最多支持8个数据字节。这减少了协议开销,并提高了协议效率。2、增加传输的速度CAN FD支持双比特率:与传统CAN一样,标称(仲裁)比特率限制为1 Mbit/s,而数据比特率则取决于网络拓扑。
2026-01-05 13:15:43
15
转载 如何计算CAN总线的负载率以及每帧耗时和每秒最多传输帧数
上,不同的波特率下,每秒钟最多能够传输多少帧数据,或者说,每帧数据需要耗时多少时间。】,有需要的可以自行下载。当然,考虑到下载需要积分(这里要澄清一下,本来我上传时是选择不需要积分下载的,但是CSDN会自动调整,这不是我能左右的),如果积分不多,也可以直接留言邮箱给我,我单独发给你。首先我们要确认几个输入参数,包括CAN总线的波特率,要传输的帧类型和帧格式,然后根据CAN协议规范,计算出该帧的bit数。我们用数据帧来做示例,详见图1。实际的表格,我上传到CSDN了【今天遇到一个问题,需要计算一下。
2026-01-05 13:14:41
15
转载 CAN通讯不同帧类型与数据长度的传输时间计算(基于500K波特率)
注意:IFS(Intermission)是发送完一帧后,总线必须保持空闲的时间,一般不计入“一帧的发送时间”内,但影响的是下一帧的发送时机。尤其是携带不同数据长度(如1~8字节)时,时间会有多大差异?说明:以上“总位数”是近似值,实际可能为 109~111 bits,但 220 µs(8字节)是一个合理且通用的参考值。• 增加了 SRR(替代远程请求位,1bit,显性) 和 IDE(标识符扩展位,1bit,隐性)• 如果系统对实时性要求极高,可考虑更高波特率(如 1M、2M),传输时间将成比例缩短。
2026-01-05 13:01:22
21
转载 NNG协议
NNG是 nanomsg 的继任版本,而 nanomsg 则是流行的 ZMQ (一个简单好用的传输层,像框架一样的一个 socket library)的 C 重写版。NNG 将通信使用的协议和传输分离,同一个协议可以工作在不同的传输层上,类似与 TCP/IP 的应用层和传输层的分层,同时接口上屏蔽了底层细节,统一用字符串 URL 来描述传输模式。这样当使用场景修改时,可以通过简单修改 URL 来实现适应,极具灵活性。
2025-12-13 22:40:03
97
1
转载 NNG 开源项目教程
NNG的源代码目录结构如下:├── CMakeLists.txt # 主要的CMake构建脚本├── include # 公共头文件│ └── nng # NNG的核心头文件├── src # 源码目录│ ├── aio # 异步I/O接口│ ├── core # 核心功能│ ├── msg # 消息处理│ ├── protocols # 各种消息协议实现│ │ ├── pair # 对等协议│ │ ├── pubsub # 发布/订阅协议。
2025-12-13 22:35:16
63
1
转载 qt为什么转向用cmake放弃qmake
Qt 转向 CMake 不是“折腾”,而是“进化”。对 Qt 公司:降低维护成本,拥抱开源生态对开发者:获得更强大、更标准、更未来的构建体验虽然 CMake 初学曲线略陡,但它是现代 C++ 开发的必备技能,投资回报极高。└── 简单但局限 → 无法满足现代需求↓qbs (2013)└── 技术先进但生态失败 → 被社区抛弃↓└── 行业标准 → Qt 全面拥抱问题答案qbs 是什么?Qt 推出的新一代构建系统,试图替代 qmakeqbs 和 qmake 关系?
2025-12-13 22:30:27
42
转载 【Linux】Linux系统上升级到最新的CMake版本
在Linux系统上升级到最新的CMake版本(如最新版本为4.0.2),可以按照以下清晰有序的步骤操作。以下指南假设您使用的是基于/Ubuntu或Red Hat的发行版(如CentOS/RHEL),并提供多种安装方式(二进制安装、源码编译、包管理器等)。
2025-12-09 15:51:23
130
转载 开源推荐——Kitware系列之Kitware简述
公司致力于开发高质量的开源软件和提供相关的软件开发服务,其主要领域包括计算机视觉、医学成像、科学可视化、地理信息系统(GIS)等。Kitware公司是一家致力于开源软件开发和软件开发服务的科技公司,其产品和开源项目在计算机视觉、医学成像、科学可视化等领域得到了广泛应用。除了开源软件开发之外,Kitware公司还提供软件开发服务,包括软件开发、咨询、培训等。:一个开源的可视化和分析软件,用于处理大规模数据集。:一个用于医学图像数据管理和分析的开源软件。:一个用于医学图像分析和可视化的开源软件。
2025-12-09 15:28:39
49
转载 使用 Visual Studio Code 调试代码
在您按下 Enter 后,表达式会被求值,并且调试控制台 REPL 会在您键入时显示建议。本文介绍了 VS Code 的调试功能,以及如何在 VS Code 中开始调试。运行时有内置的调试支持,可以调试 JavaScript、TypeScript 或任何其他被转译为 JavaScript 的语言。断点是一个特殊的标记,它会在特定点暂停您的代码执行,以便您可以在该点检查应用程序的状态。如果您的调试会话涉及多个目标(例如,一个客户端和一个服务器),调试工具栏会显示会话列表并允许您在它们之间切换。
2025-12-08 14:35:22
63
转载 vscode调试技巧
在现代前端与全栈开发的日常工作中,代码调试是不可或缺的一环,而一款优秀的调试工具能够显著提升开发效率,减少问题定位的时间成本。Visual Studio Code(简称 VSCode)作为一款备受开发者喜爱的轻量化编辑器,不仅提供了丰富的插件生态和高效的代码编辑体验,更以其强大的调试功能成为开发者工作流中不可或缺的一部分无论是调试 Node.js 后端代码、前端浏览器代码,还是更复杂的容器化微服务系统,VSCode 都提供了灵活的调试支持。
2025-12-08 14:34:00
21
转载 Windows环境使用VSCode 调试Linux环境C/C++代码
由于Window上编译Linux系统下的代码,因此可将Linux看作是另外一台电脑,不管是不是虚拟机,容器之类的,或者说Windows 10 上通过Windows商店安装的Ubuntu系统,只要能通过ssh远程连接,就可以通过VSCode来远程调试,因此VSCode需要安装远程插件,在插件搜索框搜索Remote SSH,将下图中选中的插件都安装上,其他相应插件会自动安装。command,这里因为是要执行make命令,因此这里就写make,其实也跟上面一样,命令行上执行什么这里就写什么;
2025-12-04 19:02:11
57
转载 VMWARE-虚拟机与主机间的关系
NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡。笔记本没插网线时: 主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。
2025-12-03 19:37:25
39
转载 Linux 安全文件传输完全指南:sftp 与 scp 的深度解析引言
在 Linux 系统管理中,文件传输是日常工作中不可或缺的一部分。然而,在不安全的网络中传输文件可能会带来严重的安全风险。OpenSSH 套件提供了多种安全文件传输工具,其中sftp和scp是最常用的两种。本文将深入探讨这些工具的使用方法、安全性考量以及最佳实践。SFTPSCP(Secure Copy)也是 OpenSSH 套件的一部分,它使用 SSH 协议进行安全的文件传输。SCP 命令语法简单,长期以来被系统管理员广泛使用。优先使用 SFTP:功能丰富、安全性高、交互友好避免使用 SCP。
2025-12-03 17:51:42
61
转载 Windows 10上开启路由转发及添加路由
将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRoute设为1。将 Routing and Remote Access 服务的启动类型更改为自动并启动服务。注意:实验环境下主机B两个接口没有网关。完成之后,ping测试即可。
2025-12-03 17:48:09
184
转载 利用netsh命令实现端口映射(端口转发)的功能(netsh命令仅在windows系统下可用,文章后面附linux端口转发)
如果你希望在两个远程主机之间进行端口转发,可以使用SSH的端口转发功能。在Linux中,你可以使用一些不同的工具和方法来进行端口转发,具体取决于你的需求和环境。表示要将规则添加到 PREROUTING 链中,这是一个在数据包进入路由之前处理的链,通常用于进行端口转发。这将在本地主机上创建一个监听端口8888的代理,所有传入的连接将被转发到目标IP的80端口。这将在本地IP的本地端口上监听连接,并将它们转发到目标IP的目标端口。: 这个部分指定了要匹配的目标端口,即传入连接的目标端口为80。
2025-12-02 16:43:00
58
转载 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=7890 connectaddress=127.0.0.1
是 Windows 系统中一个强大的工具,能够帮助实现端口转发功能,适用于本地服务代理、跨主机通信、网络穿透等多种场景。通过掌握其命令结构、工作原理和实际应用方法,我们可以。(Port Forwarding)的命令。通过这个命令,可以将一个本地端口上的流量转发到另一个地址和端口上。这种技术常用于网络调试、代理服务、跨主机通信等场景。正如一句话所说:“网络是无形的桥梁,而端口转发则是桥上的指路牌。,就能为复杂的网络环境搭建清晰的通信路径。地解决网络通信中的问题。服务器IP:7890。开发机IP:7890。
2025-12-02 16:05:25
42
转载 Linux ip命令完全指南:网络管理的首选工具
在现代Linux系统中,ip命令已经取代了传统的ifconfig、route等命令,成为网络配置和故障排除的首选工具。ip命令是iproute2软件包的一部分,提供了统一的接口来管理Linux系统的网络功能。4. IP地址管理(address对象)4. IP地址管理(address对象)3. 网络接口管理(link对象)6. 邻居表管理(neigh对象)3. 网络接口管理(link对象)6. 邻居表管理(neigh对象)5. 路由管理(route对象)5. 路由管理(route对象)
2025-12-01 12:51:49
46
转载 虚拟机VMware和宿主机连接[通俗易懂]
如果有什么错误或问题欢迎私聊评论指正!未完,待续。发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171613.html原文链接:https://javaforall.cn虚拟机VMware和宿主机连接[通俗易懂]-腾讯云开发者社区-腾讯云。
2025-11-28 12:40:18
88
转载 dhclient 命令详解
动态主机配置协议客户端。②dhclient命令的作用:使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议。③DHCP客户端 dhclient 提供了一种使用动态主机配置协议 和 BOOTP 协议配置一个或多个网络接口的方法。如果这些协议失败,则通过静态分配地址来配置。④动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。
2025-11-28 12:38:05
58
转载 VSCode系列 - 如何用VSCode搭建C++高效开发环境(1)
VSCode是笔者用过的最好用的开发工具,没有之一。笔者14年的码龄生涯中,先后用过Eclipse、 IntelliJ IDEA、 WebStorm、 PyCharm、 Visual Studio(2010/2013/2015)、 NetBeans、 Sublime Text等,但自从用VSCode之后,就再没换过其他工具,一直用到现在有5年多的时间。
2025-11-25 11:31:45
46
转载 VSCode系列 - 如何用VSCode搭建C++高效开发环境(2)
在VSCode下进行C/C++开发,C/C++插件是最重要、功能最强大、也是最复杂的一个插件。我们从C/C++: 代码智能提示、补全、跳转等功能,集成了插件的几乎所有功能。Formatting: 代码格式化器,可对代码进行自动格式化。: 通过代码(注释)生成文档,定义注释的样式,集成Doxygen等工具。: 代码分析器,对代码的错误、风格等进行检查,集成了Clang-Tidy。Debugging: Debug调试器。: 资源管理器。: 其他杂项配置。进行C/C++开发,C/C++
2025-11-25 11:19:14
61
转载 解决vscode C/C++ Advanced Lint的具体操作步骤
VSCode C/C++ Advanced Lint是一款专为C/C++项目开发者设计的代码静态分析工具。它结合了多种静态分析工具,如clang-tidy、cppcheck和PVS-Studio,提供了全面的代码检查和错误诊断功能。该工具可以在开发过程中自动检查代码,并提示潜在的问题和改进建议。
2025-11-25 11:17:46
111
转载 CS:理解编程中 lint是什么意思
在计算机科学与技术(尤其是编程领域)中,(或 )是一种用于检查代码潜在问题、风格不一致或不符合编码规范的工具。它的名称源于早期 Unix 系统中的一个工具lint(1979年),最初用于 C 语言代码的静态分析。
2025-11-25 11:15:04
64
转载 什么是Lint工具?何时需要使用Lint工具?
类似地,由计算机科学家斯蒂芬·约翰逊(Stephen C. Johnson)编写的Lint命令就像一个干衣机中的棉絮陷阱,因为它在不影响整块布的情况下捕获了多余的“纤维”。但是,如果您使用的是编译语言或开发的是复杂的嵌入式系统,那么Linter并不能满足您的一切需求。后续的Linter和类似Lint的工具不仅仅关注样式和格式,还通过查找更广泛的问题扩展了功能,例如未解决的合并冲突、已弃用的函数以及使用不安全的语言功能。请记住,Linter会根据其了解的规则分析您的代码,找出其中的风格和软件缺陷。
2025-11-25 11:14:14
30
转载 OOM问题排查,Linux进程突然被杀掉(OOM killer)
Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码linux/mm/oom_kill.c,当系统内存不足的时候,out_of_memory()被触发,然后调用select_bad_process()选择一个”bad”进程杀掉。如何判断和选择一个”bad进程呢?
2025-11-25 10:04:58
52
转载 电脑开机出现no boot disk has been detected or the disk has failed解决方法
也可以按键盘上的F10保存,一般情况是f10,有些机器按F4保存,然后在弹出的窗口选YES即可,如图所示;:1、开机的时候迅速按F2键或delete键或F1键或Esc键进入BIOS(不同品牌的电脑进BIOS的按键可能不同),我这台机器是按del进入bios,进入bios后我们切换到Boot选项,检查Boot Option #1第一启动项第一启动项是否为硬盘,如下图所示;出现这个提示一般如果是刚动了电脑或是动了硬盘,硬盘没接好,我们首先检测硬盘的和主板上的数据线是否松动,我们尝试重插一下,如果重插了可以在。
2025-11-17 17:24:38
691
转载 IoT -- (七)MQTT协议详解
经过以上的比较,我们可以得出如下结论:MQTT基于异步发布/订阅的实现解耦了消息发布者和订阅者,基于二进制的实现节省了存储空间及流量,同时MQTT拥有更好的消息处理机制,可以替代TCP Socket一部分应用场景。从事嵌入式开发工作的人都应该知道LwIP,LwIP是一套用于嵌入式系统的开放源代码TCP/IP协议栈,LwIP在保证嵌入式产品拥有完整的TCP/IP功能的同时,又能保证协议栈对处理器资源的有限消耗,其运行一般仅需要几十KB的RAM和40KB左右的ROM。CoAP也是一个能与MQTT竞争的协议。
2025-11-13 13:18:02
104
转载 MQ系列12:如何保证消息顺序性
消息的有序性在很多业务场景中占有很重要的位置。比如购物场景,需要按照 创建订单 --> 订单付款 --> 完成订单 顺序执行。又比如出行场景,接单 --> 接送到达目的地 --> 付款 --> 完成订单。这种是严格按照顺序执行的,这样的顺序消费才不会出问题,而且各个订单之间是互相独立和并行执行的。所以,在MQ中,如何稳定地保证顺序性消息处理,是一个不可避免的话题。
2025-11-13 13:15:44
62
转载 MQTT协议介绍与C++服务端客户端实现
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息发布/订阅协议,设计用于低带宽、高延迟、不稳定的网络环境,广泛应用于物联网(IoT)设备间的通信。其基于客户端-服务器架构,通常使用TCP/IP协议作为传输层协议。MQTT协议轻量级:头部开销小,适合低带宽环境。支持QoS(服务质量)QoS 0:最多一次传递。QoS 1:至少一次传递。QoS 2:只有一次传递。发布/订阅模式:客户端可以发布消息,也可以订阅消息,支持多对多通信。保持连接。
2025-11-13 13:13:46
104
转载 MQTT 主题的写法(强烈不推荐以/开头,会形成空层级)
理解并熟练运用主题和通配符是构建高效、灵活 MQTT 应用的基础。务必根据你的具体业务场景仔细设计主题命名空间。好的,我们来详细讲解 MQTT 主题的写法、规则以及通配符的使用。这是 MQTT 协议中非常核心和灵活的部分。符合特定模式的主题,是 MQTT 订阅功能强大的关键。通配符允许订阅者订阅。
2025-11-13 13:09:20
64
转载 交叉编译paho.mqtt.c和paho.mqtt.cpp(MQTT客户端)
本文详细介绍了在ARM32平台上交叉编译Eclipse Paho MQTT C/C++客户端库的过程。通过配置交叉编译工具链,分别编译paho.mqtt.cpp(1.5.2版本)和paho.mqtt.c(1.3.14版本)两个库,并启用了SSL支持。文章提供了完整的编译命令、环境配置以及常见问题解决方法,包括版本对齐要求、依赖库缺失问题等。同时给出了基于这两个库的MQTT订阅和发布示例代码,演示了如何在ARM开发板上运行MQTT客户端程序进行消息通信。整个过程涵盖了从源码下载、交叉编译、安装部署到实际应用的
2025-11-13 11:31:29
73
转载 VMware,NAT模式,如何让外网主机访问虚拟机?
在下,外网无法直接访问虚拟机,但可以通过将宿主机的某个端口映射到虚拟机的指定端口。808080NAT模式VMnet8NAT设置添加808080保存设置并重启虚拟机。808080按Win + R,输入wf.msc回车,打开“高级安全 Windows 防火墙”。在现有规则列表中搜索8080或相关描述(如“VM Port Forwarding”),确认状态为,且操作是若输出结果中包含8080且,则表示端口已放行。若显示,则端口可访问。说明:curl。
2025-11-13 11:02:41
218
空空如也
cnds的c-ide好使么,我怎么一直发生错误啊,哪位大神指点一下!
2017-05-17
关于c++ 文件流打开后,判断存在和是否打开的区别?
2017-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅