【问题标题】:How to set baudrate on TwinCAT3 PLC for EL6002 or EL6001 comport?如何在 TwinCAT3 PLC 上为 EL6002 或 EL6001 设置波特率?
【发布时间】:2018-02-24 10:59:06
【问题描述】:

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

【问题讨论】:

    标签: plc twincat structured-text


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      另一种解决方案是在 IO 配置和 COE 在线选项卡下进行更改。当你在那里更新它时,它会永远记住这个值。

      在代码中,您也可以通过 CoE(Can over EtherCAT)对其进行更新。您可以从documentation 中找到设置变量的索引号。对于通道 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

      nSlaveAddr 是来自 EL6002 的终端端口,可以通过 IO 配置链接,参见Terminal->InfoData->AdsAddr->port

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-17
        • 2019-08-15
        • 2018-10-21
        • 2011-07-29
        相关资源
        最近更新 更多