본문 바로가기
IT/FA

MELSEC 주소에 따라 데이터가 안 들어가는 경우

by Jang HyunWoong 2016. 7. 12.

Melsec 통신에서 공유 메모리에 데이터를 입력하기 위한 함수로


mdSend(); 함수가 있다.

이 함수는 타겟 스테이선의 특정한 체널에 데이터를 보내는 함수이다. 


ret = mdSend(path,stno,devtyp,devno,size,data);

This function sends data to the specified channel number on the target station.


보통 mdSend()함수를 사요해서 보냈었다. 


하지만 타켓 주소값이 8000번때가 넘어가니가 데이터가 Melsec에 쓰여지지 않는 것을 확인했다. 


그 이유는 mdSend()라는 함수가 옛날 함수이고 주소의 범위가 넓지 않은 것으로 예상된다. 


그래서 


mdSendEx() 함수를 사용해서 그 범위를 확장시켰다. 



ret = mdSendEx(path,netno,stno,devtyp,devno,size,data);


 long ret;

  //Return value                                                     OUT

 long path;

  //Path of channel                                                 IN

 long netno;

  //Network number                                                IN

 long stno; 

  //Station number                                                  IN

 long devtyp;

  //Device type                                                        IN

 long devno;

  //Channel number                                                IN

 long *size;

  //Send byte size                                                   IN/OUT

 short data[ ];

  //Send data (single-precision integer array)         IN


기존에 멜섹에 데이터가 쓰이는데, 주소에 따라서 데이터가 안들어가는 경우 함수를 바꿔줄 필요가 있다. 

반응형

'IT > FA' 카테고리의 다른 글

가상으로 RS232C 통신 테스트  (0) 2018.02.20
HSMS 메시지 통신 방법  (0) 2016.07.12
MELSEC 설정  (0) 2016.07.12