Показать сообщение отдельно
Старый 05.02.2016, 23:56   #100
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: WEB SCADA на SMH2Gi - демо

Основной функционал класса дописан. Основной функционал бота тоже готов.
Уже, в общем, можно пользоваться.

В любом jabber(xmpp) клиенте в ростер добавляется jid бота, который выполняет команды по чтению/записи переменных по Modbus/TCP. (Можно не добавлять в ростер, а зайти в конфу и работать публично )
Доступный на текущий момент функционал бота:
- запуск рабочей сесии
- установка IP для связи
- задание имени файла карты переменных
- задание формата файла карты переменных (про форматы ниже)
- чтение текущей конфигурации
Код:
Текущая конфигурация: 
Plc_IP = 123.123.123.123
mapfile = Pixel-Standart.map
varformat = Logix
mapdir = resource
Plc_Port = 502
Unit = 1
- чтение одной переменной
- чтение всех переменных
- запись одной переменной
- стоп рабочей сессии

***Ничего никуда устанавливать/настраивать не надо Ну кроме jabber-клиента.

Карты переменных:
Пока карты пременных считываются из файлов, которые я ручками кладу на сервер.
Как вариант - сделаю возможность загрузки.
Сейчас доступны два формата - "2Gi" и "Logix".
2Gi - формат файла load_files.map из SMH 2Gi
Logix - файл карты переменных создаваемых SMLogix-ом.
Позже добавлю свой формат для самостоятельной подготовки файла карты переменных.
Планирую добавить возможность формировать карту переменных в "интерактивном общении" с ботом и ее сохранение на сервере с привязкой к создавшему.
Можно добавить чтение форматов таких же готовых файлов устройств других производителей, если такие существуют.

-- Функционал бота будет расширяться.

--- Если кому, вдруг, интересно будет попробовать - пишите в личку

Естесственно, работать будет с любым устройством Modbus/TCP, не только с Сегнетиксами

P.S. Идея замутить это всё навеяна этим - http://forum.segnetics.com/showpost....2&postcount=51

P.P.S Образчик работы
Код:
 
 vis (22:31:55 5/02/2016) 
2-конфиг
 L-Test (22:31:55 5/02/2016) 
Текущая конфигурация: 
Plc_IP = хх.ххх.ххх.хх
mapfile = Pixel-Standart.map
varformat = Logix
mapdir = resource
Plc_Port = 502
Unit = 1
 vis (23:00:51 5/02/2016) 
2-читать SCo_Уставка_t
 L-Test (23:00:51 5/02/2016) 
SCo_Уставка_t = 30.0
 vis (23:01:08 5/02/2016) 
2-запись SCo_Уставка_t 25
 L-Test (23:01:08 5/02/2016) 
Записываю SCo_Уставка_t = 25
 L-Test (23:01:11 5/02/2016) 
Ошибка записи переменной
 vis (23:01:32 5/02/2016) 
2-запись SCi_Уставка_t 25
 L-Test (23:01:32 5/02/2016) 
Записываю SCi_Уставка_t = 25
 L-Test (23:01:35 5/02/2016) 
Переменная  записана успешно
 vis (23:01:43 5/02/2016) 
2-читать SCo_Уставка_t
 L-Test (23:01:43 5/02/2016) 
SCo_Уставка_t = 25.0
 vis (23:01:52 5/02/2016) 
2-читатьвсе
 L-Test (23:02:00 5/02/2016) 
ATi_R0                             				 = 0
ATi_R1                             				 = 0
ATi_R2                             				 = 0
ATi_R3                             				 = 0
ATi_R4                             				 = 0
ATi_U(р) АВент                     				 = 0
ATi_U(р) ВоКал                     				 = 0
ATi_U(р) Охл                       				 = 0
ATi_U(р) Рек1                      				 = 0
ATi_U(р) Рек2                      				 = 0
ATi_U(р) Увл                       				 = 0
ATi_U(р) ЭКал                      				 = 0
ATi_Код (CPU)                      				 = 0
ATi_Контроль связи                 				 = 0
DOUT - ЖПСигнал на открывание      				 = False
DOUT - РаботаЛампа 'Работа'        				 = False
F5 SMH 2G                          				 = 0
F6 SMH 2G                          				 = 0
Left SMH 2G                        				 = 0
SCADA                              				 = 791168
SCi_Блокировка                     				 = 0
SCi_Дист/Мест                      				 = 0
SCi_Пуск                           				 = 0
SCi_Резерв_B1                      				 = 0
SCi_Резерв_B2                      				 = 0
SCi_Резерв_B3                      				 = 0
SCi_Резерв_B4                      				 = 0
SCi_Резерв_B5                      				 = 0
...
....
.....
ViS вне форума   Ответить с цитированием