Доброго времени суток!
У меня есть задача написать свою программу для управления OMRON CS1G-H CPU45. Нужны только две команды: прочитать пямять, записать память (0101, 0102). Параллельно на управляющем компьютере крутится другой софт, так что порт занят им (ETN_UNIT'ом FINSGateway'а). Напрямую общаться нет проблем, а вот как это делать через FINSGateway.. Сколько не искал описание, ничего толкового не нашел.
Пробовал так. Использовал ActiveX объект в файле FgwScm.ocx. Упоминание о нем встречается на сайте OMRON (Europe), но никакой документации по работе с этим объектом не нашлось. Анализируя файл FgwScm.ocx, удалось установить перечень методов (функций), которые используются для отправки команд и получения ответа на них. С отправкой вопросов нет. Проблема возникла с функцией receiveMessage.
Прототип:
Код:
receiveMessage(var NetID: Smallint; var NodeID: Smallint; var UnitID: Smallint; MessageType: OleVariant): OleVariant;
При попытке вызова последней возникает ошибка «Unsupported Variant Type on the Method argument». Есть подозрение, что проблема в праметре MessageType. Приведение типов результата не дало. И вообще не понятно что нужно передавать в этом параметре.
Понимаю, в сильные дебри залез. Может быть, что-то подскажете. Или есть более простой способ общаться с контроллером?