1

我找不到如何为 Beckhoff EL6002 设置波特率。我得到一个提示,我应该为此使用 CoeWrite 块,但由于我对 TwinCAT 有点陌生,我找不到正确的功能块。有人可以发送一个代码示例(关于结构化文本)如何做到这一点?

4

2 回答 2

2

编程的另一种方法是直接通过 IO 配置对其进行配置。如果添加 Startup 值,则每次 IO 从指定状态更改为另一个时都会设置该值。在下图中,PS 表示从 Pre-Op 到 Safety。所以它会工作,即使你更换 IO。

设置 IO 启动值

于 2017-09-15T11:51:29.673 回答
1

另一种解决方案是在 IO 配置和 COE-online 选项卡下进行更改。当您在那里更新它时,它将始终记住该值。

在代码中,您也可以通过 CoE(Can over EtherCAT)对其进行更新。您可以从文档中找到设置变量的索引号。对于通道 1,它似乎是 8000:11,所以 index = 8000 和 subindex = 11。

然后通过使用 Tc2_EtherCAT 库中的邮箱写入器块 ( FB_EcCoESdoWriteEx ),可以将值写入该参数。因此,当您的 PLC 程序启动时,首先运行将变量更新为所需波特率的代码。

例如,像这样:

TargetValue := 1; //WORD, Check documentation for correct value

//MailBoxWriter = Instance of FB_EcCoESdoWriteEx
MailBoxWriter(
        sNetId:= **AmsNetId of the EtherCAT master**, 
        nSlaveAddr:= **Serial interface terminal port**, 
        nSubIndex:= 11, 
        nIndex:= 8000, 
        pSrcBuf:= ADR(TargetValue), 
        cbBufLen:= SIZEOF(TargetValue), 
        bExecute:= TRUE, 
        tTimeout:= T#500MS, 
        bCompleteAccess:= FALSE, 
        bBusy=> , 
        bError=> , 
        nErrId=> 
    );

sNetId是 EtherCAT 总线主站的 AmsNetId。它可以从 IO 配置链接,请参阅Master->Infodata->AmsNetId

是 EL6002的nSlaveAddr终端端口,它可以从 IO 配置链接,请参阅Terminal->InfoData->AdsAddr->port

于 2017-09-18T04:28:25.440 回答