|
|
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Кто нибудь решал задачу , получить данные с OPC сервера в Лису, а очень надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 15:02 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Друг, ты подробнее объясни, pls, что такое OPC-сервер ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 15:17 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Берешь драйвер ODBC для OPC сервера и цепляешься - осталость только узнать где этот драйвер лежит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 15:20 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Программа является сервером OPC для узлов сети ULTRANET, созданных с помощью системы программирования UltraLogik и объединенных через интерфейс RS-485 (PLCNET) либо через стандартную сеть Ethernet с помощью протокола IPX/SPX (IPXNET). Сервер позволяет осуществлять обмен данными между узлами сетей PLCNET и IPXNET и приложениями-клиентами OPC. Сервер реализован с использованием современных концепций программирования на основе спецификации OPC версии 2.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 07:03 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Технология связывания и внедрения объектов для систем промышленной автоматизации OPC (OLE for Process Control) предназначена для обеспечения универсального механизма обмена данными между датчиками, исполнительными механизмами, контроллерами, устройствами связи с объектом и системами представления технологической информации, оперативного диспетчерского управления, а также системами управления базами данных. Производители аппаратных средств, пользуясь спецификацией OPC, имеют возможность разрабатывать единственный сервер OPC для обеспечения единственного и наиболее общего способа организации доступа к данным и передачи в адрес приложений-клиентов различных производителей программного обеспечения для промышленной автоматизации. OPC основана на модели распределенных компонентных объектов Microsoft DCOM и устанавливает требования к классам объектов доступа к данным и их специализированным (custom) интерфейсам для использования разработчиками клиентских и серверных приложений. Для обмена данными с приложениями-клиентами, разработка которых ведется на языках типа MS Visual Basic, а также с популярными приложениями типа Excel, спецификация OPC содержит дополнительные (но необязательные для реализации) требования к интерфейсу OLE-автоматизации (OLE Automation). Текущая версия Fastwel PLCNET OPC сервера не поддерживает интерфейс OLE-автоматизации. Структура взаимодействия между приложениями-клиентами и серверами OPC различных производителей показана ниже. Опираясь на объектную технологию COM/DCOM, стандарт OPC фиксирует определенную модель взаимодействия между клиентом и сервером. Базовым понятием этой модели является элемент данных (Item). Каждый элемент данных имеет значение, время последнего обновления (timestamp) и признак качества, определяющий степень достоверности значения. Значение может быть практически любого скалярного типа – булево, целое, с плавающей точкой и т.п. – или строкой (так называемый OLE VARIANT). Время представляется с 100-наносекундной точностью (FILETIME Win32 API). Реальная точность измерения времени обычно бывает хуже и, в общем случая, зависит от реализации сервера и аппаратуры. Качество – это код, содержащий в себе грубую оценку – UNCERTAIN, GOOD и BAD (неопределено, хорошее и плохое), а на случай плохой – еще и расшифровку, например QUAL_SENSOR_FAILURE – ошибка датчика. Следующим вверх по иерархии является понятие группы элементов (OPC Group). Группа создается OPC-сервером по требованию клиента, который затем может добавлять в группу элементы (Items). Для группы клиентом задается частота обновления данных, и все данные в группе сервер старается обновлять и передавать клиенту с заданной частотой. Отдельно стоящих вне группы элементов быть не может. Клиент может создать для себя на сервере несколько групп, различающихся требуемой частотой обновления. Для каждого клиента всегда создается своя группа (кроме так называемых публичных групп), даже если состав элементов и частоты обновления совпадают. Отсоединение клиента приводит к уничтожению группы. Элементы в группе, таким образом, – это своего рода клиентские ссылки на некие реальные переменные (теги), находящиеся на сервере или в физическом устройстве. Понятие тега спецификацией OPC не определяется, но подразумеваятся неявно. Элементы в группу клиент добавляет по имени, и эти имена являются именами соответствующих тегов. Клиент может либо знать нужные имена заранее, либо запросить список имен тегов у сервера. Дя запроса имен тегов служит интерфейс IOPCBrowseServerAddressSpace, с помощью которого сервер описывает клиенту свое "пространство имен", организованное в общем случае иерархически. Пример полного имени тега: Устройство1. Модуль5. АналоговыйВход3. При добавлении элемента в группу клиент всегда указывает это полное имя. Заметим, что группы, создаваемые клиентом, не обязаны совпадать (и, как правило, не совпадают) с подразделами пространства имен сервера, элементы в группу добавляются "в разнобой". Единственное, что их объединяет – это общая частота обновления и синхронность отправки клиенту. Наконец, на верхней ступеньке иерархии понятий находится сам OPC-сервер. Из всех перечисленных (OPC-группа, OPC-элемент) он единственный является COM-объектом, все остальные объекты доступны через его интерфейсы, которые он предоставляет клиенту. Взаимосвязь групп и элементов OPC показана ниже. На Basice c Access делается так: Sub Main() ' ******************************************************************************************** ' Предварительные действия для работы данной программы ' Настройка источника данных ODBC ' 1. Нажать кнопку "Пуск" на рабочем столе ' 2. Далее: Настройка ---> Администрирование ---> Источники данных ODBC, ' откроется панель ODBC Data Source Adminictrator ' 3. Выбрать опцию добавить (ADD) ' 4. Выбрать драйвер Microsoft Access Driver(*.mdb) и нажмите кнопку Готово ' 5. В появившейся панели нажмите кнопку Выбрать ' 6. Найдите базу DC1_Skl.mdb в папке D:\DC1_OPC\BazaAcc и нажмите кнопку OK ' ' После этих действий источник данных настроен ' ' ******************************************************************************************** 'Программа сохранения данных с OPC сервера ' Имя проекта - PDt_DC1.bas ' Имя исходного модуля - Dt_DC1.bas ' Имя загрузочного модуля - Dt_DC1.exe ' 'Назначение программы - сохранение данных полученных С OPC сервера в таблице DTH и запись ' вычисленных значений объемов руды в таблицу Vm3_Dc1 базы DC1_Skl.mdb ' '********************************************************************************************** 'Подключаемые библиотеки : - Visual Basic For Application ' - Visual Basic runtime objects and procedures ' - Visual Basic objects and procedures ' - OLE Automation ' - Microsoft ActiveX Data Objects 2.6/2.7 Library ' - Microsoft ActiveX Data Objects Recordset 2.5/2.7 Library ' - OPC Automation 2.0 ' 'Меню для подключения - Project ------> Referens далее выбор библиотек '********************************************************************************************* 'Данные по показаниям датчиков сохраняются в таблицы базы данных DC1_Skl.mdb ' таблицы : - DtH значения высот считанных с датчиков ' - Vm3_Dc1 расчитанный объем руды на складе ' ' Программа должна быть запущена в работу по времени планировщиком заданий или ' периодичность работы должна быть организована объектом TIMER '************************************************************************************************* ' MsgBox "GGGGGGGGGGGGGGGG" 'Запись состояния оборудования в базу DC1_Skl.mdb '********* База данных DC1_Skl.mdb Dim dc1 As New ADODB.Connection Dim dth As ADODB.Recordset ' таблица dth (показания датчиков) ' Dim vm3 As ADODB.Recordset ' таблица vm3 (объем склада) ' Dim knv As ADODB.Recordset ' таблица Konv (конвеера) ' Dim ms1 As ADODB.Recordset ' таблица Mel_St1 (мельницы первой стадии) ' Dim ms2 As ADODB.Recordset ' таблица Mel_St2 (мельницы второй стадии) ' Dim ms3 As ADODB.Recordset ' таблица Mel_St3 (мельницы третьей стадии) ' Dim nkp As ADODB.Recordset ' таблица N_K_P_D (нагнетатели, компрессоры,пульпонасосная) ' Dim dh2 As ADODB.Recordset ' таблица D_H2O (давление воды) ' Dim svs As ADODB.Recordset ' таблица SG_VF_SB (сгустители, вакумм-фильтры, сушильные барабаны) '************************************************* dc1.Open "DSN=DC1_Skl" 'открыть базу данных DC1_Skl.mdb ' открыть набор записей (таблицу DTH) (показания датчиков) Set dth = New ADODB.Recordset ' оптимистическая блокировка dth.CursorType = adOpenKeyset dth.LockType = adLockOptimistic dth.Source = "Dth" ' имя источника данных таблица Drob_KC dth.ActiveConnection = dc1 dth.Open dth.MoveLast '*************************************************************************************************************************************** '*************************************************************************************************************************************** '***** ОРС сервер ********** Dim isready As Boolean 'Признак готовности к переходу в режим Исполнение Dim bserverStarted As Boolean 'Признак наличия соединения с ОРС-группой 'Объекты доступа ОРС Automation 2.0 Dim opcserverObj As OPCServer 'OPC-сервер Dim GroupsCollectionObj As OPCGroups 'коллекция ОРС-групп Dim OpcGroupObj As OPCGroup 'отдельная ОРС-группа Dim itemsCollectionObj As OPCItems 'коллекция элементов данных 'массив идентификаторов клиента Dim ClientHandles(58) As Long 'массив идентификаторов сервера Dim ServerHandles() As Long 'массив ошибок, заполняемый в процессе работы с объектами доступа Dim Errors() As Long 'Массив ,в котором будут находится считанные значения ОРС-элементов данных Dim Readvalue() As Variant 'Массив начальных значений ОРС-элементов данных 'которые определяют начальные условия процесса ' Dim WriteValues(171) As Variant 'Признак необходимости установки правильных начальных условий ' Dim WriteRequired As Boolean 'Массив признаков качества сигналов (ОРС Quality) Dim pQuality As Variant 'Массив меток времени сигналов (OPC timestamp) Dim pTimeStamp As Variant 'Массив имен элементов данных Dim ItemIDs(58) As String 'Массив путей доступа к элементам данных Dim AccessPaths(58) As String 'Массив флагов активности элементов данных Dim Active(58) As Boolean 'Количество элементов данных Dim ItemCount As Integer 'счётчик, просто счётчик Dim i As Integer 'Количество элементов данных Dim maxItems As Integer 'Признак отсутствия каких-либо элементов данных Dim bInvalidItems As Boolean 'Сброс признака готовности к запуску isready = False maxItems = 58 'Создание объекта доступа к серверам ОРС Set opcserverObj = New OPCServer 'Установление соединения с ОРС-сервером opcserverObj.Connect ("Fastwel.PLCNETOPC") 'Проверка успешности соединения с сервером ОРС If TypeName(opcserverObj) = TypeName(Nothing) Then Return ' Создание группы на сервере 'Получение коллекции ОРС-групп Set GroupsCollectionObj = opcserverObj.OPCGroups 'Добавление элемента в коллекцию ОРС-групп Set OpcGroupObj = GroupsCollectionObj.Add("Group one") 'Получение коллекции элементов данных в добавлениной группе Set itemsCollectionObj = OpcGroupObj.OPCItems ItemCount = 0 ' счетчик 'Подготовка массивов,используемых при добавлении элементов данных в группу For i = 1 To maxItems Active(i) = True ItemCount = ItemCount + 1 ClientHandles(ItemCount) = i AccessPaths(ItemCount) = "" Next i '********************* база DC1_Skl.mdb ********************* ' запись значений в таблицу DTH '*****подготовка массива ItemIDs(48) с именами тегов OPC ***** ' имена тегов для таблицы DTH ItemIDs(1) = "dispn.01.AI100" ' dt1 - датчик 1 ItemIDs(2) = "dispn.01.AI101" ' dt2 - датчик 2 ItemIDs(3) = "dispn.01.AI102" ' dt3 - датчик 3 ItemIDs(4) = "dispn.01.AI103" ' dt4 - датчик 4 ItemIDs(5) = "dispn.01.AI104" ' dt5 - датчик 5 ItemIDs(6) = "dispn.01.AI105" ' dt6 - датчик 6 ItemIDs(7) = "dispn.01.AI106" ' dt7 - датчик 7 ItemIDs(8) = "dispn.01.AI107" ' dt8 - датчик 8 ItemIDs(9) = "dispn.01.AI108" ' dt9 - датчик 9 ItemIDs(10) = "dispn.01.AI109" ' dt10 - датчик 10 ItemIDs(11) = "dispn.01.AI110" ' dt11 - датчик 11 ItemIDs(12) = "dispn.01.AI111" ' dt12 - датчик 12 ItemIDs(13) = "dispn.01.AI112" ' dt13 - датчик 13 ItemIDs(14) = "dispn.01.AI113" ' dt14 - датчик 14 ItemIDs(15) = "dispn.01.AI114" ' dt15 - датчик 15 ItemIDs(16) = "dispn.01.AI115" ' dt16 - датчик 16 ItemIDs(17) = "dispn.01.AI116" ' dt17 - датчик 17 ItemIDs(18) = "dispn.01.AI117" ' dt18 - датчик 18 ItemIDs(19) = "dispn.01.AI118" ' dt19 - датчик 19 ItemIDs(20) = "dispn.01.AI119" ' dt20 - датчик 20 ItemIDs(21) = "dispn.01.AI120" ' dt21 - датчик 21 ItemIDs(22) = "dispn.01.AI121" ' dt22 - датчик 22 ItemIDs(23) = "dispn.01.AI122" ' dt23 - датчик 23 ItemIDs(24) = "dispn.01.AI123" ' dt24 - датчик 24 ItemIDs(25) = "dispn.01.AI200" ' dt25 - датчик 25 ItemIDs(26) = "dispn.01.AI201" ' dt26 - датчик 26 ItemIDs(27) = "dispn.01.AI202" ' dt27 - датчик 27 ItemIDs(28) = "dispn.01.AI203" ' dt28 - датчик 28 ItemIDs(29) = "dispn.01.AI204" ' dt29 - датчик 29 ItemIDs(30) = "dispn.01.AI205" ' dt30 - датчик 30 ItemIDs(31) = "dispn.01.AI206" ' dt31 - датчик 31 ItemIDs(32) = "dispn.01.AI207" ' dt32 - датчик 32 ItemIDs(33) = "dispn.01.AI208" ' dt33 - датчик 33 ItemIDs(34) = "dispn.01.AI209" ' dt34 - датчик 34 ItemIDs(35) = "dispn.01.AI210" ' dt35 - датчик 35 ItemIDs(36) = "dispn.01.AI211" ' dt36 - датчик 36 ItemIDs(37) = "dispn.01.AI212" ' dt37 - датчик 37 ItemIDs(38) = "dispn.01.AI213" ' dt38 - датчик 38 ItemIDs(39) = "dispn.01.AI214" ' dt39 - датчик 39 ItemIDs(40) = "dispn.01.AI215" ' dt40 - датчик 40 ItemIDs(41) = "dispn.01.AI216" ' dt41 - датчик 41 ItemIDs(42) = "dispn.01.AI217" ' dt42 - датчик 42 ItemIDs(43) = "dispn.01.AI218" ' dt43 - датчик 43 ItemIDs(44) = "dispn.01.AI219" ' dt44 - датчик 44 ItemIDs(45) = "dispn.01.AI220" ' dt45 - датчик 45 ItemIDs(46) = "dispn.01.AI221" ' dt46 - датчик 46 ItemIDs(47) = "dispn.01.AI222" ' dt47 - датчик 47 ItemIDs(48) = "dispn.01.AI223" ' dt48 - датчик 48 ItemIDs(49) = "dispn.01.DI300" ' sk1 - сост.конв. ItemIDs(50) = "dispn.01.DI301" ' sk2 - сост.конв. ItemIDs(51) = "dispn.01.DI302" ' sk3 - сост.конв. ItemIDs(52) = "dispn.01.DI303" ' sk4 - сост.конв. ItemIDs(53) = "dispn.01.DI304" ' sk5 - сост.конв. ItemIDs(54) = "dispn.01.DI305" ' sk6 - сост.конв. ItemIDs(55) = "dispn.01.DI306" ' sk7 - сост.конв. 7 ItemIDs(56) = "dispn.01.DI307" ' sk8 - сост.конв. 9 ItemIDs(57) = "dispn.01.DI308" ' sk9 - сост.конв. 6 ItemIDs(58) = "dispn.01.DI309" ' sk10 - сост.конв. 8 'Добавление элементов данных в группу itemsCollectionObj.AddItems ItemCount, ItemIDs, ClientHandles, ServerHandles, Errors, pQuality, pTimeStamp 'Проверка конфигурации сервера For i = LBound(Errors) To UBound(Errors) If Errors(i) <> 0 Then bInvalidItems = True Exit For Else bInvalidItems = False End If Next i bserverStarted = True ' WriteRequired = False If bInvalidItems = False Then ' Синхронное чтение значений элементов данных в группе OpcGroupObj.SyncRead OPCCache, ItemCount, ServerHandles, Readvalue, Errors isready = True End If ' запись значений в таблицу Dth ' дробилки крупного дробления dth.Fields("dt1") = Readvalue(1) dth.Fields("dt2") = Readvalue(2) dth.Fields("dt3") = Readvalue(3) dth.Fields("dt4") = Readvalue(4) dth.Fields("dt5") = Readvalue(5) dth.Fields("dt6") = Readvalue(6) dth.Fields("dt7") = Readvalue(7) dth.Fields("dt8") = Readvalue(8) dth.Fields("dt9") = Readvalue(9) dth.Fields("dt10") = Readvalue(10) dth.Fields("dt11") = Readvalue(11) dth.Fields("dt12") = Readvalue(12) dth.Fields("dt13") = Readvalue(13) dth.Fields("dt14") = Readvalue(14) dth.Fields("dt15") = Readvalue(15) dth.Fields("dt16") = Readvalue(16) dth.Fields("dt17") = Readvalue(17) dth.Fields("dt18") = Readvalue(18) dth.Fields("dt19") = Readvalue(19) dth.Fields("dt20") = Readvalue(20) dth.Fields("dt21") = Readvalue(21) dth.Fields("dt22") = Readvalue(22) dth.Fields("dt23") = Readvalue(23) dth.Fields("dt24") = Readvalue(24) dth.Fields("dt25") = Readvalue(25) dth.Fields("dt26") = Readvalue(26) dth.Fields("dt27") = Readvalue(27) dth.Fields("dt28") = Readvalue(28) dth.Fields("dt29") = Readvalue(29) dth.Fields("dt30") = Readvalue(30) dth.Fields("dt31") = Readvalue(31) dth.Fields("dt32") = Readvalue(32) dth.Fields("dt33") = Readvalue(33) dth.Fields("dt34") = Readvalue(34) dth.Fields("dt35") = Readvalue(35) dth.Fields("dt36") = Readvalue(36) dth.Fields("dt37") = Readvalue(37) dth.Fields("dt38") = Readvalue(38) dth.Fields("dt39") = Readvalue(39) dth.Fields("dt40") = Readvalue(40) dth.Fields("dt41") = Readvalue(41) dth.Fields("dt42") = Readvalue(42) dth.Fields("dt43") = Readvalue(43) dth.Fields("dt44") = Readvalue(44) dth.Fields("dt45") = Readvalue(45) dth.Fields("dt46") = Readvalue(46) dth.Fields("dt47") = Readvalue(47) dth.Fields("dt48") = Readvalue(48) dth.Fields("sk1") = Readvalue(49) dth.Fields("sk2") = Readvalue(50) dth.Fields("sk3") = Readvalue(51) dth.Fields("sk4") = Readvalue(52) dth.Fields("sk5") = Readvalue(53) dth.Fields("sk6") = Readvalue(54) dth.Fields("sk7") = Readvalue(55) dth.Fields("sk8") = Readvalue(56) dth.Fields("sk9") = Readvalue(57) dth.Fields("sk10") = Readvalue(58) dth.Update ' записать dth.Close ' ************ If TypeName(opcserverObj) <> TypeName(Nothing) Then 'Удаление всех добавленных ОРС-групп из коллекции GroupsCollectionObj.RemoveAll 'отсоединение от сервера opcserverObj.Disconnect bserverStarted = False End If 'закрыть базу данных DC1_Skl.mdb dc1.Close ' освободить область памяти Set dth = Nothing ' Set dc1 = Nothing 'освобождение объектов Set opcserverObj = Nothing Set GroupsCollectionObj = Nothing Set OpcGroupObj = Nothing Beep Beep Beep If Not isready Then MsgBox "Ошибка в конфигурации сервера или сервер не установлен" 'Переключение Экранной формы в режимРазработка 'ThisDisplay.ToggleRuntime End If End Sub А надо напрямую с Лиса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2005, 07:11 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Прога на VFP не сильно будет отличаться от VB. VFP так же как и VB умеет работать с объектами, в том числе и с COM. Не понял, какая здесь проблема???!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 09:08 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
лежит пьяный в умат мужик мордой в луже носом пузыри пускает Подходит дочка. - Папа, папа почини куклу Мужик так морду из лужи приподнял и говорит - Ну да счас усё брошу пойду фигней заниматься Уважаемый тока без обид, но на вашу задачку дня угробить мало. Тем более что таковой сервер у Вас имеется, а у нас вряд ли у кого оно есть Задачка дюже экзотическая хотя может повезет найдется опытный, но вероятность мала? А вообще пример у Вас есть, эт без разницы что на другом языке, что Вам еще надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 10:30 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Вы бы посидели и подумали выжали тему и прислали более конкретный вопрос тогда когда трудности возникнут конкретные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2005, 10:41 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
Получал. Работал с Rockwell'овским RSLinx и Siemens'овским OPC.SimaticNet. Сформулируй вопрос конкретнее - постараюсь помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:44 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
WormanПолучал. Работал с Rockwell'овским RSLinx и Siemens'овским OPC.SimaticNet. Сформулируй вопрос конкретнее - постараюсь помочь. Друг, ты на дату топика посмотри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2006, 16:48 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
За окном 2006 год, а народ занимается "онанизмзм".. до сих пор. Я с этим боролся сперва, потом бросил. БЕСПОЛЕЗНО! Удачи. P.S почитай посты Сергея Ch на тему Web- сервисов. P.S2: На фоксе их не пиши, пиши на ASP.NET+C#.. хотя это дело вкуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 00:04 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
2006 Я с этим боролся сперва а почему, собственно? Вы думаете VFP как OPC-клиент, в чём-либо уступит WinCC или ProTool от Siemens? В скорости разработки - VFP выиграет раз в 100! Конечно, там где "без компромиссов" выбирают InTouch Wonderware - но это уже другая история... Worman Работал с Rockwell'овским RSLinx и Siemens'овским OPC.SimaticNet. да? очень интересно! а что делали - только читали значения тегов или управляющие воздействия передавали тоже? какая задача ставилась: сделать человеко-машинный интерфейс SCADA системы, или интегрировали данные АСУТП в управленческий учёт. С какими проблемами пришлось столкнуться? Честно говоря, интересны любые подробности. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2006, 21:07 |
|
||
|
VFP и OPC сервера
|
|||
|---|---|---|---|
|
#18+
localhost Worman Работал с Rockwell'овским RSLinx и Siemens'овским OPC.SimaticNet. да? очень интересно! а что делали - только читали значения тегов или управляющие воздействия передавали тоже? какая задача ставилась: сделать человеко-машинный интерфейс SCADA системы, или интегрировали данные АСУТП в управленческий учёт. С какими проблемами пришлось столкнуться? Честно говоря, интересны любые подробности. С RSLinx без проблем можно работать через DDE. А VFP легко работает с DDE. Видел код проги на VFP, которая через RSLinx читала-писала данные в Rockwell'овский контроллер. Единственная возможная проблема - 8 или 9 версия VFP (не помню точно) под WinXP иногда тормозит. Вообще, обычно обрудование АСУТП и SCADA системы поддерживают работу через DDE. Можно посмотреть в этом направлении. Примеры работы с оборудованием через DDE обычно идут в его поставке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2006, 12:32 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33106249&tid=1590319]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 359ms |

| 0 / 0 |
