Advantech+WinCC
Олег; 28.11.03

Кто нибудь пробовал Advantechовские платы к WinCC подключать. Через ADSAPI.DLL или через ActiveXы из ActiveDAQ или еще как-то.

Пробовал через функции ADSAPI.DLL, но что-то не выходит, а через ActiveDAQ - не знаю, как из скрипта WinCC сделать команду на BitInput для ActiveXа.
Если есть примеры, пришлите - буду благодарен.
Re: Advantech+WinCC
Yrok; 29.11.03

Без номера платы ничего не могу конкретно сказать, но скажу одно у меня есть подобная плата и она работает через функции в DLL так что необходимо подключать к WinCC DLL-ку.

А вообще WinCC нормально работает с Advantech.
Re: Advantech+WinCC
Олег ; 1.12.03

PCI-1733

Re: Advantech+WinCC
Олег; 2.12.03

C ADSAPI.DLL у меня проблема следующая:

Функции DRV_DeviceOpen, DRV_DeviceClose, DRV_AIConfig, DRV_GetErrorMessage работают нормально, а вот функции, производящие считывание/запись дискретных и аналоговых сигналов с плат (DRV_AIVoltageIn, DRV_DioReadPortByte и т.д.), при попытке их вызова отвечают:
=============On Error Execute==========
dwErrorCode1: (ThreadId 2456) 1007001
dwErrorCode2: (ThreadId 2456) 4100
szErrorText: (ThreadId 2456) Exception in Action
szErrorTextException:(ThreadId 2456) access violetion
szApplicationName:(ThreadId 2456) PDLRuntimeSystem
bCycle: (ThreadId 2456) acycle
szFunctionName: (ThreadId 2456) @2
lpszPictureName:(ThreadId 2456) NEWPDL0
lpszObjectName: (ThreadId 2456) Button1
lpszPropertyName:(ThreadId 2456) (NULL)
dwParamSize :(ThreadId 2456) 12
=============On Error Execute==========
Уточняю, что я пока работаю с виртуальной платой Advantech DEMO. Возможно, ситуация изменится, когда будет реальная плата. А, может быть, я как-то не правильно задаю параметры при вызове этих функций, или не правильно заданы приемные структуры данных, или типы данных. Хотя я все делаю по примерам Advantech'а.
А может сама Windows 2000 не дает DLL'ке считать данные с портов? Но Advantech пишет, что на Windows 2000 данная DLL'ка должна работать.
Если есть примеры работающих скриптов WinCC с этими функциями – вышлите на email.

Re: Advantech+WinCC
Yrok; 2.12.03

К сожалению я не нашёл свой старый проект на дельфи но раскажу в кратце. Вместе с платой поставлялся компакт диск на диске были драйвера и примеры для бейсика, посмотрел как делают и подключал на С++ и там всё делалось через динамическую билиотеку, так что ищи в драйверах и примерах к плате, кстати на диске должно быть и описание.

У меня кстати плата PCI-1750
Вот тебе ссылка на твою плату и драйвер.
http://service.advantech.com.tw/eservice/index.asp

Re: Advantech+WinCC
Yrok; 2.12.03

А ты когда открываешь к примеру порт или устройство полученный HANDLE ты не теряешь после этого, если да то примерно такие ошибки и будут

Re: Advantech+WinCC
Олег; 2.12.03

Нет, в том то и дело, что не теряю, я даже потом могу пользуясь этим HANDLЕ'ом сделать DRV_DeviceClose, и оно нормально делается.


И еще, так вы прямо из скрипта WinCC вызывали функции ADSAPI.DLL или писали свою маленькую DLL'ку на C++, в которой делали функцию, вызывающую функции ADSAPI.DLL, а уже эту самодельную функцию вызывали из скрипта WinCC?
Re: Advantech+WinCC
Yrok; 2.12.03

Дело в том что WinCC как то не понятно работет иногда, поэтому я писал свою DLL а от туда уже вызывал функции Advantech.

Re: Advantech+WinCC
Олег; 2.12.03

Все понял, буду писать свою DLL.

До этого я пытался работать прямо из WinCC. Вы очень точно подметили: "WinCC как то не понятно работет иногда".
Спасибо за содействие.
Если и из DLL'ки работать не будет, тогда еще отпишусь.