问题标签 [ethercat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如果 UDP 数据包在线,我能保证在应用层得到它们吗?
首先,我理解 UDP 不是一个可靠的协议,并且我不能保证通过网络接收数据包。
但是,如果数据包确实到达了我的机器,我是否可以保证在应用程序级别接收它,或者网络堆栈可以将其丢弃而不受惩罚?
我问的原因是我似乎偶尔会丢失数据包,即使我知道它们在线上(简单的 EtherCAT 总线,所以数据包总是环回)。
ethercat - 没有任何背景如何学习 EtherCAT?
我对 EtherCAT 完全陌生。我正在寻找一个很好的起点来学习 EtherCAT master。
我发现有一个很棒的开源实现,叫做SOEM。
但是没有任何 EtherCAT 的背景,代码真的很难看懂。
有人可以帮我找到学习 EtherCAT master 的方法吗?
go - 从自己的 IP 接收组播
我正在研究编写 Go 的 Ethercat 大师。底层库位于http://github.com/distributed/ecat并包含一个链接级驱动程序,使用 UDP 和多播。我很难让这个链接级驱动程序在多个平台(OS X、Windows、Linux)和不同的网络配置上一致地工作。
对于那些不熟悉 Ethercat 的人,这里是它的工作原理。Ethercat 是一种基于以太网的工业总线系统。有一个总线主机和可能有许多从机,它们连接成一个逻辑环。主机可以由现成的硬件构建,即使用普通的以太网接口卡。主设备在其以太网接口上发送一个数据包,从设备动态修改数据包,在通过所有从设备后,主设备在发送它的同一网络接口上接收数据包。根据从属设备的数量,网络接口可能会在它仍在传输相同的数据包时开始接收数据包。Ethercat 帧有两种可能的格式。第一个是具有特殊以太网类型的以太网数据包。第二个是发往端口 0x88a4 的 UDP 数据包。
根据以太网数据包中包含的命令,从设备可能会也可能不会修改数据包的 Ethercat 数据。除了更改 Ethercat 数据之外,唯一更改的数据包是以太网目标地址的第 1 位设置为 1。数据包的 IP 标头不会被 Ethercat 从站触及。
我的代码工作如下。我加入了一个多播组,比如239.255.65.10
在 interface 上xyz
,我连接了我的 Ethercat 从站。为了与总线交换数据,我发送了一个数据包,让我们pA
在这个接口上调用它239.255.65.10
。操作系统填写源地址,比如192.168.5.2
接口的IP地址xyz
。在数据包通过总线并可能被更改后,它现在是 packet pB
。IP 标头仍然有一个来源192.168.5.2
和一个目的地239.255.65.10
。根据主机的网络设置,此数据包可能会或可能不会到达我的应用程序。在它没有到达我的应用程序的情况下,说什么时候rp_filter
设置,在 Linux 上,数据包pB
被拒绝,因为它看起来像是来自我的机器,但我们不应该通过网络接收我们自己的数据包。
我可以采取哪些步骤来可靠地接收处理后的数据包pB
?请注意,我不是在谈论环回- 环回是关于接收数据包pA
,我的问题是关于接收pB
。
.net - TwinCAT 2.11:使用 Win32-Application 设置 Config/Freerun-Mode
我在 Windows XP SP2 上使用 TwinCAT I/O 2.11。使用 .NET 库“TwinCAT.ADS”,我已经设法读取和写入输入/输出(来自 EtherCAT 总线上设备的映射对象)。但当然,这仅在 TwinCAT 处于 Freerun 或 Realtime 模式时才有效。
我现在的问题是:我可以手动设置 TwinCAT 模式。但是如何使用 Win32 程序设置 TwinCat 模式(Freerun、Realtime、...)?我没有在 TwinCAT.ADS 中找到合适的函数。有没有这样的功能?
ethercat - EtherCAT 如何支持不同的网络拓扑?
EtherCAT 如何支持不同的网络拓扑?
假设一个纯 EtherCAT 网络没有任何标准的以太网交换机、集线器等……使事情复杂化,并且有一个主站和多个从站。
一些消息来源将其描述为仅支持环形拓扑(即维基百科),考虑到操作理论,这是有道理的,但 EtherCAT 网站表示它也支持其他拓扑。
100BaseTX 以太网电缆包含两个半双工链路,每个方向一个;当被视为半双工链路的图表时,EtherCAT 是否始终是环形总线,但当被视为物理以太网电缆的图表时,该图表几乎可以是任意的?
ethercat - 如何在 PC 上使用 SOEM EtherCAT 主站来控制 EtherCAT 从站设备
我正在尝试控制作为机器人夹持器的 EtherCAT 从站。从机信息如下,使用SOEM包内的示例程序slaveinfo获取:
,从设备的寄存器映射如下:
我现在要做的是将输出寄存器的byte0中的bit0的rACT位设置为1,这样我就可以激活设备了。
我修改了SOEM 中的simple_test示例代码。使从设备进入运行状态后,我尝试了:
我不确定这是否真的将值1写入byte0 的 bit0。我所能看到的是抓手根本没有移动,这不是预期的行为。
我完全被困在这里,不知道下一步我应该尝试什么,或者我应该学习什么样的材料。任何建议表示赞赏!谢谢。
canopen - 我可以自动配置(默认)PDO 布局吗?
如果我调用ecrt_slave_config_reg_pdo_entry
创建域偏移量,我会收到以下消息:
注册 PDO 条目失败:没有这样的文件或目录
我相信我必须打电话给ecrt_slave_config_pdos
,我现在不是。但是,我不明白为什么我必须调用它。就我而言,我想与之交谈的奴隶已经连接到总线。如果我进入ec cstruct -p [SLAVE_POS]
终端,我会得到 PDO 布局。
为什么我可以从终端命令获取所有输入参数ecrt_slave_config_pdos
,但 EtherCat 不能(或不想)配置从站本身?从站配置可以自动化吗?
ethercat - 模棱两可的 EtherCAT 详细信息
以下是关于 EtherCAT 的几行介绍:
EtherCAT 主站发送一个通过每个节点的电报。每个 EtherCAT 从设备“即时”读取寻址到它的数据,并在帧向下游移动时将其数据插入帧中。
我对上述文本的问题:
- “即时”读取数据是什么意思?
- 如何在框架移动时将数据插入框架中?它不需要先复制到缓冲区然后更新吗?
memory - Beckhoff Ethercat 从内存
我目前正在研究 Beckhoff 从站,我想知道它是否存在描述从站内存与其类型(EL1014,EL2622,...)相关的文件。我需要这些文件,因为我想创建一个从堆栈。
谢谢
ios - 用 iPad 控制伺服驱动器/电机
我是自动化领域的新手,因此是“初学者”问题:
目标是通过 iPad 应用程序控制两个伺服电机。
我想使用松下或倍福的驱动程序,松下便宜一点,但倍福可能有更多的功能,而且总体上似乎有更好的记录。
由于没有即插即用选项(至少我听说没有一个可以让您使用完全自定义的 iOS 应用程序),我想获得一个 ethercat 驱动程序并将一个 Rasperry Pi 连接到它作为链接:
[电机]---[驱动器]---[PI]---wifi---[iPAD]
有人做过这样的事情并且可以给我一些提示吗?