Siemens AG
Список форумов SIEMENS, Россия. IA&DT
   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Автоматическая генерация блоков данных из стороннего ПО

 
Начать новую тему   Ответить на тему    Список форумов SIEMENS, Россия. IA&DT -> Промышленное программное обеспечение
Предыдущая тема :: Следующая тема  
Автор Сообщение
akcount
Известный Писатель


Зарегистрирован: 06.07.2007
Сообщения: 137

Сообщение Добавлено: Чт Июл 28, 2011 7:40    Заголовок сообщения: Автоматическая генерация блоков данных из стороннего ПО Ответить с цитатой

Коллеги, давно у меня есть идейка, конфигурировать сигналы программы (например, время фильтрации входного дискретна или диапазон измерения аналогового входа) в сторонней программе, а не напрямую в редакторе блока данных.

То есть, я забил конфигурацию, нажал кнопку "Импорт в Step7", и в среде симатика необходимые блоки данных появились автоматически.

Есть предположение, что это осуществляется некоими ActiveX компонентами, устанавливаемыми вместе с симатиковским софтом.

Вопрос, разумеется, наитупейший. Какой компонент мне нужен? Дальше я сам постараюсь разобраться.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Eagle
Известный Писатель


Зарегистрирован: 18.04.2007
Сообщения: 402
Откуда: Красноярск

Сообщение Добавлено: Чт Июл 28, 2011 8:16    Заголовок сообщения: Ответить с цитатой

Не совсем оно, но
http://simatic-pcs.ru/grup/10015713.php
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
akcount
Известный Писатель


Зарегистрирован: 06.07.2007
Сообщения: 137

Сообщение Добавлено: Чт Июл 28, 2011 8:20    Заголовок сообщения: Ответить с цитатой

Eagle писал(а):
Не совсем оно, но
http://simatic-pcs.ru/grup/10015713.php


Мне такое никто не купит :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
pupena_san
Известный Писатель


Зарегистрирован: 18.12.2009
Сообщения: 153
Откуда: Киев

Сообщение Добавлено: Чт Июл 28, 2011 8:55    Заголовок сообщения: Ответить с цитатой

Вы можете создавать ресурсные данные в нужной папке проекта, например файлы *.AWL. Поавда потом придется их ручками компилировать. Зато подход наверное самый простой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
akcount
Известный Писатель


Зарегистрирован: 06.07.2007
Сообщения: 137

Сообщение Добавлено: Чт Июл 28, 2011 8:59    Заголовок сообщения: Ответить с цитатой

pupena_san писал(а):
Вы можете создавать ресурсные данные в нужной папке проекта, например файлы *.AWL. Поавда потом придется их ручками компилировать. Зато подход наверное самый простой.


Это очевидное решение. Но мне хочется добраться до истоков.

Считайте, что у меня слишком много свободного времени :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
pupena_san
Известный Писатель


Зарегистрирован: 18.12.2009
Сообщения: 153
Откуда: Киев

Сообщение Добавлено: Чт Июл 28, 2011 9:07    Заголовок сообщения: Ответить с цитатой

помните Ереалаш:
.....
- Вовочка ты что опять Крмель рисуешь
- нет Мария Ивановна, президента
-какого президента?
- американского
....
хотите свой Стукснет сделать :-)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
akcount
Известный Писатель


Зарегистрирован: 06.07.2007
Сообщения: 137

Сообщение Добавлено: Чт Июл 28, 2011 9:09    Заголовок сообщения: Ответить с цитатой

pupena_san писал(а):
хотите свой Стукснет сделать :-)


Чтоб меня тут же закопали? :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
pupena_san
Известный Писатель


Зарегистрирован: 18.12.2009
Сообщения: 153
Откуда: Киев

Сообщение Добавлено: Чт Июл 28, 2011 9:11    Заголовок сообщения: Ответить с цитатой

Я как посмотрел в Ексцеле сколько у меня поставлено Automation библиотек S7 (50 шт.), думаю там много чего можно накопать. Когда-то натыкался на доку, когда искал простые пути изменения структуры DB в онлайне. Причем ссылку дали на этом форуме.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Smitis
Начинающий писатель


Зарегистрирован: 12.12.2008
Сообщения: 66

Сообщение Добавлено: Пт Июл 29, 2011 10:42    Заголовок сообщения: Ответить с цитатой

Насколько я понимаю, в проекте вся программа для симатика лежит в DBF. Приходилось когда-то сотрудничать с одним челом, он тоже всё носился с "задумкой", что-то там генерировать автоматически. И у него даже что-то работало. Но я тогда симатиком ещё не занимался. Не знаю, чем это закончилось.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
akcount
Известный Писатель


Зарегистрирован: 06.07.2007
Сообщения: 137

Сообщение Добавлено: Сб Июл 30, 2011 16:59    Заголовок сообщения: Ответить с цитатой

Коллеги, я знаю, что такое возможно. Ибо сам видел, но тогда был маленький и глупый.

Некоторые могут поинтересоваться - зачем мне такое?

К примеру. Есть у меня аналоговые сигналы. Для них задается:

-тип (уни\биполярный или вообще термопара и т.д.)
-диапазон датчика
-предупредительная сигнализация
-аварийная сигнализация
-мертвая зона для выхода за пределы измерения

Признаки предупредительной и аварийной сигнализации, равно как и выход за пределы измерения - это биты. Применяю я для каждого аналога UDT. Поля пользовательского типа в программе использовать чертовски неудобно, ибо символьный комментарий един (например "аварийное верхнее значений").

Из этого удобнее завести дополнительный блок данных, который хранит как и значение сигнала, так и ряд признаков.

Колотить это руками - жутко неудобно. А вот автоматизировать хотя бы эту рутинную задачу - было бы очень удобно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
j.hlebnikov
Писатель со стажем


Зарегистрирован: 07.07.2010
Сообщения: 756
Откуда: ООО Фирма "КГПА"

Сообщение Добавлено: Сб Июл 30, 2011 17:21    Заголовок сообщения: Ответить с цитатой

Поля пользовательского типа в программе использовать чертовски неудобно, ибо символьный комментарий един (например "аварийное верхнее значений").

Не понял о чем речь, почему неудобно?
Я примерно так и делаю, в одном ДБ прописаны массивы типов под все аналоги, руками остается расставить уставки и прочие настройки по умолчанию, но это вы никак не автоматизируете, а для расстановки индексов в массиве использую макросы в ВОРД-е, запустил и отдыхаю пол часа, вся работа заключается в расстановке дефолтов.
Возможно так просто потому что на SCL делаю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
akcount
Известный Писатель


Зарегистрирован: 06.07.2007
Сообщения: 137

Сообщение Добавлено: Сб Июл 30, 2011 17:28    Заголовок сообщения: Ответить с цитатой

>Не понял о чем речь, почему неудобно?

Объясняю. Есть запись типа UDT. Называется она в БД, скажем, температура статора в точке 1. У этой записи есть поле "значение сигнала".

При программировании символьный комментарий тэга <UDT>.значение будет выглядеть как "значение сигнала", но без уточнения - какого именно. Какой именно сигнал - можно будет догадаться исключительно по символьному имени записи типа UDT, а это не всегда очевидно, особенно если ПО внедряю не я.

>Я примерно так и делаю, в одном ДБ прописаны массивы типов под все аналоги, руками остается расставить уставки и прочие настройки по умолчанию, но это вы никак не автоматизируете, а для расстановки индексов в массиве использую макросы в ВОРД-е, запустил и отдыхаю пол часа, вся работа заключается в расстановке дефолтов.

А что за макросы, коллега?

>Возможно так просто потому что на SCL делаю.

У меня есть наработки и на STL, и на SCL, и на LAD - как захочет заказчик. Но это не суть важно.

Важным остается первоначальный вопрос :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
j.hlebnikov
Писатель со стажем


Зарегистрирован: 07.07.2010
Сообщения: 756
Откуда: ООО Фирма "КГПА"

Сообщение Добавлено: Сб Июл 30, 2011 19:11    Заголовок сообщения: Ответить с цитатой

А что за макросы, коллега?

Выше написал: "для расстановки индексов в массиве использую макросы", т.е.:
до макроса писал(а):
BEGIN

//Уровень воды в артскважине 1
Analogs2[].A_Var_KS:=50;
Analogs2[].A_Var_SP:=10;
Analogs2[].A_Var_HA:=100.0;

//Уровень воды в артскважине 2
Analogs2[].A_Var_KS:=50;
Analogs2[].A_Var_SP:=10;
Analogs2[].A_Var_HA:=100.0;

//Расход хозяйственно-питьевой воды
Analogs2[].A_Var_KS:=50;
Analogs2[].A_Var_SP:=10;
Analogs2[].A_Var_HA:=1.0;

END_DATA_BLOCK

после макроса писал(а):
BEGIN

//Уровень воды в артскважине 1
Analogs2[001].A_Var_KS:=50;
Analogs2[001].A_Var_SP:=10;
Analogs2[001].A_Var_HA:=100.0;

//Уровень воды в артскважине 2
Analogs2[002].A_Var_KS:=50;
Analogs2[002].A_Var_SP:=10;
Analogs2[002].A_Var_HA:=100.0;

//Расход хозяйственно-питьевой воды
Analogs2[003].A_Var_KS:=50;
Analogs2[003].A_Var_SP:=10;
Analogs2[003].A_Var_HA:=1.0;

END_DATA_BLOCK

Да, на конкретный аналог указывает индекс, но можно написать коммент:
Код:
1 - Уровень воды в артскважине 1
2 - Уровень воды в артскважине 2
3 - Расход хозяйственно-питьевой воды
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Eagle
Известный Писатель


Зарегистрирован: 18.04.2007
Сообщения: 402
Откуда: Красноярск

Сообщение Добавлено: Пн Авг 01, 2011 3:47    Заголовок сообщения: Ответить с цитатой

Кстати да, все db можно формировать через scl, при условии что этот scl конечно есть.
Когда мне нужно было сформировать таблицу для crc я скриптом заполнил db значениями в исходнике scl и скомпилировал в db. Скриптовый интерпретатор всегда должен быть под рукой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Smitis
Начинающий писатель


Зарегистрирован: 12.12.2008
Сообщения: 66

Сообщение Добавлено: Ср Авг 03, 2011 15:24    Заголовок сообщения: Ответить с цитатой

Eagle писал(а):
Кстати да, все db можно формировать через scl, при условии что этот scl конечно есть.

То же самое можно делать и без SCL - через STL Source. Как ни странно, синтаксис тот же. Только подсветка синтаксиса хуже.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Худанов Егор
Начинающий писатель


Зарегистрирован: 25.06.2010
Сообщения: 68

Сообщение Добавлено: Чт Авг 04, 2011 7:35    Заголовок сообщения: Ответить с цитатой

Практически все DB создаю в Exel, а потом копирую в SCL source.
Для изменения параметров для instant DB в нем же создаю VAT таблицу и изменяю значения на конкретные. Для AI DI DO AO сигналов у нас написана специальная программа, которой удобно менять все параметры, но это разработка конторы и поделиться не смогу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Эдуард
Новый писатель


Зарегистрирован: 02.10.2007
Сообщения: 10

Сообщение Добавлено: Вт Авг 23, 2011 6:22    Заголовок сообщения: Ответить с цитатой

У Step7 есть COM. Help лежит в \CD_2\_Manuals\English\Command Interface. COM поможет в создании исходника и скомпилирует его.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
BETEP59
Начинающий писатель


Зарегистрирован: 06.07.2010
Сообщения: 51

Сообщение Добавлено: Вт Авг 30, 2011 8:23    Заголовок сообщения: Ответить с цитатой

akcount писал(а):
Коллеги, я знаю, что такое возможно.
...
Поля пользовательского типа в программе использовать чертовски неудобно, ибо символьный комментарий един (например "аварийное верхнее значений").


Без сомнения возможно и нужно. Почему не реализовано в стандартных или почти стандартных средствах Степа - непонятно. Зато каждый имеет возможность изобрести свой велосипед. Мой выглядит примерно так:
по аналоговым и дискретным входам/выходам заполняются таблички в экселе. В экселе средствами VBA генерируется соответствующий SCL-код. Помимо структуры DB и данных конфигурации (уставки, адреса ввода-вывода и т.п.) также генерируются функции обрабатывающие входные-выходные данные. Далее методом копипаста исходник переносится в проект в файлики типа CFG_AI.SCL там сохраняются и компилируется. Таким образом, для того чтобы проект заработал достаточно вставить в соответствующие места программы вызовы функций ввода и вывода. Да, и таблички для VATов тоже генерируются. Также переносятся копипастом.

В целом, приемлемый уровень удобства и функциональности для средних проектов (300-500 сигналов) обеспечивается. Основным недостатком является то что Эксел - не является нормальной (а тем более реляционной) базой данных. Поэтому с большими наборами данных приходится работать очень и очень аккуратно. Есть мечта реализовать это хозяйство под MySQL и веб-интерфейс, но пока руки не доходят.

Еще комментарии.
1) По поводу комментариев для переменных пользовательского типа - действительно, чертовски неудобно! Для структурированных ДБ логичней было бы собирать комментарий со всех уровней. Например, для переменной AI.Env.Tn.val составной комментарий "Аналоговые входа.Окружающая среда.Температура наружного воздуха, (-60..+80) Цельсии.Текущее значение" - являлся бы абсолютно исчерпывающим.
Впрочем, если в FBD необходимо по-быстрому посмотреть коммент к верхнему уровню структурной переменной то можно временно вставить вызов функции с входом типа ANY (например, BLKMOV) и привязать к нему необходимый уровень структурной переменной.

2) По поводу использования COM-интерфейса. Конечно, это позволит полностью автоматизировать импорт внешних данных в проект. Но при этом немного "страшновато" когда внешняя утилита начнет создавать-удалять-переименовывать блоки в "боевом" проекте. Особенно учитывая "нумерационный подход" в степе и высокую вероятность наличия ошибок (или недокументированных особенностей) в работе самих СОМ-функций.
Вот бы с помощью СОМ-интерфейса Степа реализовать простенький плугин к тотал-командеру, чтобы можно было работать с исходниками SCL как с файлами с "нормальными именами" а не ковыряться в помойке s7asrcom.
Кстати, кому-нибудь удалось разгадать игру немецкого разума в самом названии S7ASRCOM? Если убрать знакомое S7 и SRC - остается __A___OM. Что за "A" и что за "ОМ" ? :)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов SIEMENS, Россия. IA&DT -> Промышленное программное обеспечение Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB 2.0.11 © 2001, 2002 phpBB Group