고수님들 도와주십시요.. 정중하게 부탁드립니다...
사용자 포로토콜을 사용하다가 금번에
MODBUS 프로토콜을 사용하게 되었습니다.
--------------------------------------------------------
Name PLC 디바이스 Modicon Address 비고
Address Status Type
--------------------------------------------------------
온도1 D0001 403074 Read Word 123,234,..
온도2 D0002 403075 Read Word
온도3 D0003 403076 Read Word
급기Fan M0007 004104 Read Bit 0:off / 1:on
배기Fan M0006 004103 Read Bit 0:off / 1:on
급기댐퍼개도 D0105 403178 Read Word 10,15,20…
급기댐퍼수동 D0080 403153 write Word 10,15,20…
HMI 수동 M0151 004248 write Bit 0:off / 1:On
--------------------------------------------------------
.
.
.
PC 와 PLC 간의 RS-232 통신을 어떻게 구현할지 감이 영 안옵니다.
기존에는 Cport263 컴포넌트를 써서 시작Point와 End Point를 기준으로 전체 데이터를 Read 하여
버퍼에 올려놓고 델파이 Copy 명령어를 써서 Table에 Insert 시켰는데
현재는 Modicon Address를 불러오면 된다고 하는데 PLC에 있는 Adddress를
어떻게 PC가 인식하는지 도통…
CIMON 저작Tool이라는게 있는데 데이터 송수신시 Broadcasting 방법을 사용하여
해당 영역 및 블록을 지정하여 손쉽게 제어할수 있다고 합니다만은
어쨌든 저는 델파이로 제작을 해야 합니다
정말 하늘이 노랗습니다.. 3일째 집에도 못들어가고...
여러가지 방법을 동원해보곤 있으나 워낙 이 부분에는 초짜라......
델파이에서 해당 MODBUS 프로토콜의 Modicon Address 를 읽어와서
DB`에 저장하고 또, 해당 번지수에 Write를해서 기기를 제어하는 방법이 없을까요?
혹시 다른방법이라도 있으시면 부탁드립니다..
그만큼 구할 수 있는 자료도 많고, 프로토콜도 간단하고,
구현도 어렵지 않습니다.
또, 상용으로 ActivX 콘트롤도 많이 나와있습니다.
사용 제품을 사용하셔도 되고, 직접 짜셔도 됩니다.
일단, PLC 어드레스를 보니, D0001이란 것은 PLC의 Word 영역 중에서
Write가 가능한 register영역으로 보아지며, offset 3073부터 시작하는
것 같네요.
읽는 것은 FC03을 이용하여 offset(3073) + 원하는 D영역 어드레스를
시작으로 원하는 만큼 count를 주면 어렵지 않을 것 같습니다.
자세한 것은 MODBUS 프로토콜 자료를 참조하시기 바랍니다.