저희 회사는 반도체 회사입니다. 그래서 요즘 반도체 설비에 대한 작업을 좀 하고 있습니다.
반도체 설비는 SECS라는 통신 규격이 있어서 Serial 혹은 TCP/IP로 설비의 Data를 받아 볼 수 있습니다.
SECS Driver는 대부분 Driver(OCX)를 판매하는 업체꺼를 구매해서 사용을 합니다.
SECS Driver를 구입해서 설비 1대와 통신을 하는 프로그램을 만들었습니다.
1대의 설비와 통신을 잘 하고 있는데요, 다른 설비와 통신할 일이 생겨서 그냥 프로그램 2개를 띄워서
사용을 하고 있었습니다.
그런데 수십대 정도의 설비와 통신을 해야하는 상황이 발생을 했네요.
그래서 main form을 다시 만들고 기존에 만들었던 프로그램의 form을 추가해서 설비 대수 만큼 동적으로 생성해서
올렸습니다. 그런데 통신에 문제가 생기네요.
exe file 하나씩 실행이 될 때는 exe file 자체가 하나의 Thread로 되는데, 동적으로 생성해서 붙히면 exe file하나씩 실행해서
구동하는 것과는 조금 차이가 당연히 나는 것이 맞겠지요.
그래도 통신 data parsing 처리는 thread처리를 해서 별 문제가 없을 것 같았는데 ,
막상 실해해서 하나의 설비에 통신이 급격하게 늘어나면 다른 설비의 통신을 처리하는 곳에서 지연이 생기는 문제가 생기네요.
SECS Driver에서 Data를 읽어올때 for문을 돌려서 읽는데 읽는 양이 많으면 시도 때도 없이 For 문안에 있어서 그런 것 같아
for 문안에 application.processmessage를 넣을까 하다가 이것은 제대로 된 해결책이 아닌듯하여서 질문드립니다.
어떠한 방법으로 하는 것이 좋을까요?
수고하세요.
다행히 THREAD로 처리했습니다....