전체 글 34

[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

ROS 소개

ROS(Robot Operating System)는 로봇 제어에 필요한 다양한 s/w 기능들을 제공하는 오픈 소스 플랫폼입니다. Ubuntu Linux에서 사용되었는데, Windows에서도 사용할 수 있는 ROS2도 있습니다. ROS는 마스터, 노드, 토픽으로 구성되어 있습니다. 노드는 로봇에 사용되는 센서나 액츄에이터에 대응을 시킬 수 있습니다. 로봇 하나는 여러 센서와 액츄에이터를 가지고 있으니, ROS 또한 여러 개의 노드들이 존재합니다. 여러 노드들은 서로 필요로 하는 데이터를 주고 받습니다. ROS에서는 이를 토픽이라고 부릅니다. 노드에서 토픽을 발행(publish) 및 구독(subscribe)하는 형식으로 서로 토픽을 주고 받습니다. 그리고 이러한 노드들을 중재하는 마스터가 존재합니다. ROS..

기술 개발 2020.08.30

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

2020년 제 1회 정보처리기사 실기 합격 후기

기사 자격증 하나는 있으면 좋을 것 같다는 생각을 하였고,앞으로 프로그램 개발자로 먹고 살아야 하니,정보처리기사를 준비하였습니다. 2019년 5월달에 필기 시험을 합격을 하였으나,회사 업무에 적응을 하는 과정에서 (해외 출장도 2번이나.. ㅠㅠ)그 해 실기 시험 응시를 못했습니다. 2020년도 이후에는 정보처리기사가 NCS 기반으로 개편된다는 이야기를 들었고,열심히 공부하면 된다는 생각에 크게 신경은 안썼는데 자격증 공부에서 기출 문제가 얼마나 중요한지 깨달았습니다.시중에 나와있는 문제집은 나올 것 같은 부분들은 전부 다 넣어놓다보니 상당히 두껍더라고요.지금은 제 모니터 받침대로 잘 쓰고 있습니다. 약 3월 중순부터 본격적으로 준비를 시작하였습니다.따라서 실기 준비 기간은 대략 2개월 정도 됩니다.원래는..

자격증 2020.06.27