2017-09-15 223 views

回答

1

另一種解決方案是改變它的IO配置和COE-在線選項卡下。當你在那裏更新時,它會永遠記住它的價值。

在代碼中,您也可以通過CoE(可通過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

2

編程它的替代方案是直接通過IO配置進行配置。如果添加Startup值,則每次IO從指定狀態變爲另一個時都會設置它。在下面的圖片中,PS表示從Pre-Op到Safety時的情況。所以即使你更換了IO,它也能工作。

Setting IO Startup values