C# 3

[C#] 람다식을 이용한 스레드 정의

기존에 작성한 코드에서 실행 시간을 줄여야 하는 상황이 있었습니다. 기존 코드는 아래와 같습니다. if ( 0 != SomeFunction(1, 2, 3) ) { Set(false); return -1; } if ( 0 != SomeFunction(4, 5, 6) ) { Set(false); return -1; } 위 코드에서 SomeFunction 함수를 한번씩 호출하는데, 해당 함수가 실행 시간이 걸립니다. 해당 함수는 동시에 호출해도 큰 문제가 없습니다. 따라서 스레드로 정의해서 두 함수를 동시에 호출하면 실행 시간을 줄일 수 있습니다. 또한 해당 함수 중 하나라도 실행 결과가 0이 아니면 -1을 리턴해야 합니다. 스레드는 따로 리턴을 하지 않기 때문에 내부에서 해당 함수의 리턴을 받아야 할 필요가..

C# 2020.09.05

C# TwinCAT 설정 접근 방법 (ITcSysManager)

산업용 통신으로 많이 사용되는 EtherCAT은 Beckhoff사에서 만든 프로토콜입니다. (출처: https://ko.wikipedia.org/wiki/EtherCAT) Beckhoff 사는 EtherCAT UI인 TwinCAT을 제공하고 있으며, EtherCAT 통신을 사용하는 거의 모든 제품들은 해당 UI를 통해서 제어할 수 있습니다. 또한 C, C++, C# 등의 프로그래밍 언어로 EtherCAT 통신을 수행할 수 있는 프로그램을 작성할 수 있습니다. 바로 Beckhoff 사에서 관련 API들을 제공하고 있기 때문입니다. 기본적으로 TwinCAT을 설치하면 관련 API들이 포함되어 있는 라이브러리가 TwinCAT 프로그램 내에 있습니다. 해당 라이브러리를 통해 EtherCAT 통신이 가능한 셈이죠..

C# 2020.06.28