libnodave связь с S7-1200

В течение нескольких дней я пытался использовать libnodave в качестве коммуникационной библиотеки для связи с ПЛК S7-1200 от Siemens (CPU 1214C).
С библиотекой libnodave предусмотрено несколько вещей.
Приложение Delphi работает, исполняемый файл windows работает.

На Vmware я использую Linux, и работает скомпилированный двоичный файл testISO_TCP.
Похоже, я могу использовать это, верно?

daveInterface * di;
daveConnection * dc;
_daveOSserialType fds;
ds.rfd=openSocket(102, "192.168.0.1");
fds.wfd=fds.rfd;
if (fds.rfd>0) {
di =daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
daveSetTimeout(di,5000000);
dc =daveNewConnection(di,0,0,1);  // insert your rack and slot here
if (0==daveConnectPLC(dc))
{
printf("Connected..\n");
}
}

Но когда я копирую исходный код 1: 1 в свою среду разработки (Eclipse), я получаю следующее сообщение об ошибке:

IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retrying...Couldn't connect to PLC.
Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.

Похоже, что есть ошибка при подключении к ПЛК. Следующая функция генерирует эту ошибку:

DaveConnectPLC (постоянный ток)

Обратите внимание, что стойка и слот остаются неизменными, если сравнивать их с исполняемым двоичным файлом в Linux!

Может ли кто-нибудь помочь мне заставить его работать в Eclipse IDE? Это довольно странно, все исполняемые файлы / исполняемые файлы работают, но когда я хочу выполнить его прямо из IDE, это не так.

Заранее спасибо.

2

Решение

Во-первых, все, что работает на виртуальном компьютере, отличается от работы на реальном компьютере.
То, что он работает в Windows, не гарантирует, что он работает в Linux, несмотря на тот факт, что источник одинаков и / или используются те же библиотеки.
По сути, предварительно скомпилированная программа под Linux является единственным доказательством того, что она будет работать.

Всякий раз, когда у меня возникают проблемы в этой области, я смотрю с использованной версией компилятора и настройками компилятора. Запуск кода с опцией отладки печально известен повреждением кода при аппаратной связи.

Если вы еще не использовали Wireshark, я бы рекомендовал использовать его. Это идеальный инструмент, чтобы увидеть, что происходит.

1

Другие решения


По вопросам рекламы [email protected]