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'ки работать не будет, тогда еще отпишусь.