Beckhoff EL6002의 전송 속도 설정 방법을 찾을 수 없습니다. 나는 그것을 위해 CoeWrite 블록을 사용해야한다는 힌트를 얻었지만, TwinCAT에 새로운 것이므로 정확한 함수 블록을 찾을 수 없습니다. 누군가가 구조화 된 텍스트에 대한 코드 예제를 보낼 수 있습니까?TwinCAT3 PLC에서 EL6002 또는 EL6001 조합에 대한 통신 속도를 설정하는 방법은 무엇입니까?
1
A
답변
1
또 다른 해결책은 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
참조).
2