문서 보기토론이전 판역링크책에 추가PDF로 내보내기맨 위로 이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요. ======Check Reverse Connection====== <alert type="info" dismiss="true" icon="fa fa-quote-left"> InPort / OutPort 가 반대로 연결된 슬레이브의 수를 확인한다. </alert> ====Code==== <callout type="primary" > ===C#=== <sxh csharp> using ec = ComiLib.EtherCAT.SafeNativeMethods; /// <summary> /// 슬레이브의 Inport / Outport가 반대가 삽입된 모듈을 검색한다. /// </summary> private void CheckReveseConnection() { if (!CanCheckReverseConnection()) return; // 역삽입된 슬레이브의 수를 확인한다. int scanSlaveCount = 0; int reverseConnectionCount = ec.ecNet_CheckReverseConnections(netID, ref scanSlaveCount, ref errorCode); // 정의된 슬레이브 수가 있다면, 스캔된 슬레이브의 수와 비교한다. //if (definedSlaveCount != scanSlaveCount) //{ // // 두 변수의 차이는 연결되지 않은 슬레이브의 수이다. // AddLog(string.Format("Disconnected Slave Count = {0}", definedSlaveCount - scanSlaveCount)); //} if (reverseConnectionCount == 0) { AddLog(string.Format("ReverseConnection is nothing.")); return; } else { AddLog(string.Format("ReverseConnectionCount = {0}", reverseConnectionCount)); bool isReverseConnected = false; for (ushort i = 0; i < scanSlaveCount; i++) { //슬레이브별로 역삽입 여부를 확인한다. isReverseConnected = ec.ecSlv_IsReverseConnected_A(netID, i, ref errorCode); if (isReverseConnected) AddLog(string.Format("Check SlaveIndex {0} : ReverseConnected", i)); } } } /// <summary> /// 역삽입 검출 기능을 사용할 수 있는지 확인한다. /// DLL : 1.5.3.2 ( FW : 1.92 / WDM : 1.5.0.6) 이상의 버전에서 사용 가능 /// </summary> private bool CanCheckReverseConnection() { ec.TEcFileVerInfo_SDK sdkInfo = new ec.TEcFileVerInfo_SDK(); ec.TEcFileVerInfo_WDM driverInfo = new ec.TEcFileVerInfo_WDM(); ec.TEcFileVerInfo_FW fwInfo = new ec.TEcFileVerInfo_FW(); bool isSuccess = ec.ecNet_GetVerInfo(netID, ref sdkInfo, ref driverInfo, ref fwInfo, ref errorCode); string sdkVer = string.Format("{0}{1}{2}{3}", sdkInfo.CurVer.MajorVer, sdkInfo.CurVer.MinorVer, sdkInfo.CurVer.BuildNo, sdkInfo.CurVer.RevNo); int curVer = int.Parse(sdkVer); if (curVer < 1532) { AddLog("CheckReverseConnection : Not Supported version"); return false; } return true; } </sxh> </callout> <callout type="info" > ===C++=== <sxh cpp> </sxh> </callout>