首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TwinCAT CoE:写入SDO

TwinCAT CoE:写入SDO
EN

Stack Overflow用户
提问于 2020-03-04 16:42:14
回答 1查看 1.5K关注 0票数 0

我是EtherCAT/CANopen领域的新手,正在尝试实现一个自定义的从属。到目前为止,slave正在通过一致性测试,并且想要写入我的Slave数据对象之一,slave连接到一个CX5120,这是XAE发现的,也显示了Slave设备。为此,我将ESI-file复制到TwinCAT文件夹(C:\TwinCAT\3.1Config\Io\EtherCAT)。

我已经创建了一个小的结构化文本PLC程序,它使用FB_EcCoESdoWrite将数据写入地址0x607A。但当我将其设置为活动状态并尝试连接时,Visual Studio告诉我该设备至少需要一个Sync Master。此外,当将bExecute设置为TRUE时,我从函数中得到一个错误。据我所知,我必须链接我的ST程序和从属程序之间的变量,但我认为没有必要链接变量,因为函数调用应该管理传输?向ESC的SDO写入的步骤是什么?有人能告诉我我遗漏了什么吗?或者手头有一个小例子?

代码语言:javascript
运行
复制
PROGRAM MAIN
VAR
heartbeat       : UINT; 
fbSdoWrite      : FB_EcCoESdoWrite;
sNetId          : T_AmsNetId := '5.76.204.148.1.1'; (* NetId of EtherCAT Master *)
nSlaveAddr      : UINT := 1001; (* Port Number of EtherCAT Slave *)
nIndex          : WORD := 16#607A; (* CoE Object Index *)
nSubIndex       : BYTE := 0; (* Subindex of CoE Object *)
nValue          : UINT := 16#AAAA; (* variable to be written to the CoE Object *)
bExecute                : BOOL; (* rising edge starts writing to the CoE Object *)
bError          : BOOL;
nErrId          : UDINT;
END_VAR

fbSdoWrite(
        sNetId          := sNetId,
        nSlaveAddr      := nSlaveAddr,
        nIndex          := nIndex,
        nSubIndex       := nSubIndex,
        pSrcBuf         := ADR(nValue),
        cbBufLen        := SIZEOF(nValue),
        bExecute        := bExecute
);


IF NOT fbSdoWrite.bBusy THEN
        bExecute := FALSE;
        IF NOT bError THEN 
                (* write successful *)
                bError := FALSE;
                nErrId := 0;
        ELSE 
                (* write failed *)
                bError := fbSdoWrite.bError;
                nErrId := fbSdoWrite.nErrId;
        END_IF

        fbSdoWrite(bExecute := FALSE);
END_IF
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-06 16:59:15

通过将PLC代码中的变量链接到设备的DevState输入,修复了此问题。不过,链接到普通InfoData似乎不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60522006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档