目前,我正试图捕获通过一个名为EtherCAT的程序发送和接收的TwinCAT数据包。TwinCAT是Windows环境下EtherCAT通信的实时控制软件.这个程序用于每4ms与奴隶通信。
顺便说一下,我捕获了数据包,并注意到在分析过程中数据并不是连续的。因此,我插入了代码来检查捕获数据包的部分的时间差,并确认一些数据包比前一个数据包晚了20 in。
因为我可以在TwinCAT XAE工具中检查丢失的帧,我不认为数据包实际上是丢失的,我认为我的程序有一个问题。
下面是我的密码。
public class EtherCATPacketCaptureService
{
private c
我正在工作的芯片,应该是一个功能,作为一个可编程控制器(主控)通过一个EtherCAT连接。该芯片包括一个Atmega2560和一个LAN9252,它是EtherCAT从控制器。
我已经编写了xml文件。通过在奴隶上闪烁这个ESI,我面临以下问题:
奴隶在PLC的Config模式下工作(基于它的工作方式)。数据从从发送到主从,也从主从接收到从。但是,通过启动运行模式,我得到以下错误和警告:
810 ms | 'TcSysSrv' (10000): Sending ams command >> Init16\IO: Set State TComObj SAFEOP O
CANopen是点对点通信,而EtherCAT是基于总线的。点对点意味着会有节点地址。但这在EtherCAT中是多余的。因此,我想知道这个节点地址字节是如何在CANopen over EtherCAT中处理的。我试着搜索信息,但没有找到任何具体的信息。
另外,我假设CANopen设备的循环数据和非循环数据只能通过EtherCAT循环发送,因为它是主触发的循环传输协议。这基本上意味着我不能在事件触发时在EtherCAT上发送异步事件触发的信息(这是基于CAN优先级的违反直觉的信息,因为它们都有相同的优先级)。如果我做错了,请纠正我。另外,请告诉我如何使较高优先级的字节比低优先级的
我正在尝试找出,通过写入CANopen对象字典中的存储索引1010.01,我可以存储当前配置的状态是什么。我尝试在预操作状态下执行此操作,但得到以下错误
Time: 2914.034 SDO slave:1 index:1010.01 error:08000022 Data cannot be transferred or stored to the application because of the present device state
uint32_t store_password = 0x65766173;
ret = ec_SDOwrite(slave, 0x1010,
我们有一个耦合器,它目前由一些c#代码控制,我们从EtherCAT脚本中调用该c#代码。我们希望将在耦合器上切换插槽的整个过程移到powershell脚本中,但我不确定如何做到这一点。如果你能为我提供关于如何在powershell中发送/接收Modbus命令的信息,那将是非常有帮助的。
谢谢!
编辑:以下是在C#中用来切换IO耦合器的一个插槽的代码:
using System.Net.Sockets;
using Modbus.Device;
TcpClient tcp_connection = new TcpClient(ip, MODBUS_TCP_PORT);
ModbusIpMast
我有一个RHEL6服务器,我们通过XDMCP连接它。如果启动xdm (xdm &),它可以工作,但登录屏幕是旧的xdm简单登录,而不是gdm。我们的RHEL5服务器可以很好地连接到gdm。问题是GDM没有运行。当我尝试启动GDM (gdm &)时,它会给我以下信息:
** (gdm-binary:3229): WARNING **: Couldn't connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
我
我想写些蟒蛇来听信号。
使用dbus-监视器,如下所示,我可以过滤我想要的信号.
dbus-monitor "type='signal',sender='org.kde.KWin',path='/ColorCorrect',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged'"
signal time=1653997355.732016 sender=:1.4 -> destination=(null d