Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.07.2019, 10:41   #1
dp38
Senior Member
 
Регистрация: Sep 2012
Сообщения: 171
Благодарил(а): 4 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Создание базы данных

Добрый день.

Есть необходимость создать базу данных настроек с окном поиска:
- набор настроек сохраняется с именем (до 10 символов)
- оператор вводит в строке выбора начальные буквы и появляется выпадающее меню с вариантами, из которых можно выбрать

Вопросов два:
1. Возможно ли реализовать это на Logixe?
2. Какой контроллер справится с такой задачей?

И ещё, к разработчикам:
Клиент хочет минимум 7". Планируется ли увеличение диагоналей? Хотя бы для TRIMa.
Брать контроллер с экраном и прицеплять к нему ещё одну панель "пошырше" - жирновато получается.
dp38 вне форума   Ответить с цитированием
Старый 29.07.2019, 12:01   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Создание базы данных

Цитата
Сообщение от dp38 Посмотреть сообщение
Добрый день.

Есть необходимость создать базу данных настроек с окном поиска:
- набор настроек сохраняется с именем (до 10 символов)
- оператор вводит в строке выбора начальные буквы и появляется выпадающее меню с вариантами, из которых можно выбрать

Вопросов два:

1. Возможно ли реализовать это на Logixe?
На чистом лоджике - нет. Нужно писать модуль работы с БД на C++.



Цитата
Сообщение от dp38 Посмотреть сообщение
2. Какой контроллер справится с такой задачей?
Любой линуксовый, т.е. SMH2Gi, Trim5 или SMH4.



Цитата
Сообщение от dp38 Посмотреть сообщение
И ещё, к разработчикам:
Клиент хочет минимум 7". Планируется ли увеличение диагоналей? Хотя бы для TRIMa.
Брать контроллер с экраном и прицеплять к нему ещё одну панель "пошырше" - жирновато получается.
Относитесь к этому контроллеру как к бездисплейному. По соотношению цена/возможности наши контроллеры лучше бездисплейных контроллеров основных конкурентов.

Поясню на одном примере. Знакомый на тех выходных срочно продавал авто, т.к. бизнесу очень срочно нужны были деньги. Он выставил свою дорогую машину в топовой комплектации по цене ниже потёртых и немного подбитых экземпляров минимальных комплектаций. И начались звонки типа "А есть ли у вас доводчики дверей?", "А какая у вас музыка?". На 10 звонок мой знакомый просто начал говорить, что за озвученную сумму можно считать, что у машины ничего нет или оно всё не работает. Поэтому я вам и говорю: относитесь к нашим контроллерам, кроме Trim5, как к бездисплейным. Дисплей в подарок.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Благодарность от:
Старый 29.07.2019, 12:26   #3
dp38
Senior Member
 
Регистрация: Sep 2012
Сообщения: 171
Благодарил(а): 4 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Создание базы данных

Спасибо. Тогда получается нужно весь проект на C++ городить, верно?
dp38 вне форума   Ответить с цитированием
Старый 29.07.2019, 12:40   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Создание базы данных

Цитата
Сообщение от dp38 Посмотреть сообщение
Спасибо. Тогда получается нужно весь проект на C++ городить, верно?
Думаю да, я бы такое лучше целиком на C++ делал.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 29.07.2019, 12:53   #5
dp38
Senior Member
 
Регистрация: Sep 2012
Сообщения: 171
Благодарил(а): 4 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Создание базы данных

Цитата:
Сообщение от Arsie Посмотреть сообщение
На чистом лоджике - нет. Нужно писать модуль работы с БД на C++.



Поэтому я вам и говорю: относитесь к нашим контроллерам, кроме Trim5, как к бездисплейным. Дисплей в подарок.
Может быть и так, но процесс привязки панели к контроллеру тоже ведь дело не простое. Одно дело, когда интерфейс уже вшит в программу, и другое - заново сочинять все переходы, назначать адресацию памяти, и т.д.
dp38 вне форума   Ответить с цитированием
Старый 30.07.2019, 14:31   #6
ailcat
Senior Member
 
Аватара для ailcat
 
Регистрация: Oct 2010
Адрес: Москва
Сообщения: 403
Благодарил(а): 29 раз(а)
Поблагодарили: 2 раз(а) в 2 сообщениях
По умолчанию Ответ: Создание базы данных

Цитата
Сообщение от dp38 Посмотреть сообщение
Спасибо. Тогда получается нужно весь проект на C++ городить, верно?
Под Линукс существует несколько СУБД разной степени навороченности, которые можно установить на контроллер.
Тогда на С++ нужно будет написать простейший шлюз, который будет забирать с Modbus/Localhost (это проще шмемов) подготовленные FBD-программой данные и отдавать их СУБД.

Либо, если нет требований к жесткому онлайну (например, допустимы задержки до пары минут - чем больше тем лучше) - можно и проще:
- в FBD программе для контролируемых данных задействуйте элемент History
- настраиваете его на ежеминутный экспорт данных в файл excel/csv.
- средствами СУБД ежеминутно импортируете полученный файл в свою БД
- после импорта удаляете файл (некоторые СУБД это умеют).
Делаете средствами СУБД всё что левая пятка правой ноги захочет.


Ну и главное:
БД и прочую фигню гораздо разумнее делать на универсальном ПК с полноценным дисплеем (замониторные "неттопы" недороги и довольно мощны) и, главное, на них есть полноценная ОС с не менее полноценными СУБД.
UPD:
У контроллеров ViewPAC есть 7 и 10-дюймовые панели с полновесной Windows Embedded. Это как раз та платформа, которая идеально подойдёт под озвученную задачу.
ailcat вне форума   Ответить с цитированием
Старый 02.08.2019, 12:11   #7
dp38
Senior Member
 
Регистрация: Sep 2012
Сообщения: 171
Благодарил(а): 4 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Создание базы данных

Цитата:
Сообщение от ailcat Посмотреть сообщение
Под Линукс существует несколько СУБД разной степени навороченности, которые можно установить на контроллер.
Тогда на С++ нужно будет написать простейший шлюз, который будет забирать с Modbus/Localhost (это проще шмемов) подготовленные FBD-программой данные и отдавать их СУБД.

Либо, если нет требований к жесткому онлайну (например, допустимы задержки до пары минут - чем больше тем лучше) - можно и проще:
- в FBD программе для контролируемых данных задействуйте элемент History
- настраиваете его на ежеминутный экспорт данных в файл excel/csv.
- средствами СУБД ежеминутно импортируете полученный файл в свою БД
- после импорта удаляете файл (некоторые СУБД это умеют).
Делаете средствами СУБД всё что левая пятка правой ноги захочет.


Ну и главное:
БД и прочую фигню гораздо разумнее делать на универсальном ПК с полноценным дисплеем (замониторные "неттопы" недороги и довольно мощны) и, главное, на них есть полноценная ОС с не менее полноценными СУБД.
UPD:
У контроллеров ViewPAC есть 7 и 10-дюймовые панели с полновесной Windows Embedded. Это как раз та платформа, которая идеально подойдёт под озвученную задачу.
Добрый день.
Спасибо за развёрнутый ответ. Вся проблема в том, что мои познания в программировании пока ограничены только FBD. Поэтому, есть деловое предложение к специалистам разработать такую оболочку для TRIMа и добавить в неё несложный алгоритм управления станком. Кому интересно - милости просим.
dp38 вне форума   Ответить с цитированием
Старый 02.08.2019, 13:24   #8
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 762
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Создание базы данных

Цитата:
Сообщение от ailcat Посмотреть сообщение
Под Линукс существует несколько СУБД разной степени навороченности, которые можно установить на контроллер.
Можно привести действующий пример с контроллером от сегнетикс?
Как подключить репозиторий с нужной СУБД, как установить если она вообще встанет на это железо, как настроить всякие systemd, initd, firewalld.
Цитата:
Сообщение от ailcat Посмотреть сообщение
Тогда на С++ нужно будет написать простейший шлюз, который будет забирать с Modbus/Localhost (это проще шмемов) подготовленные FBD-программой данные и отдавать их СУБД.
Про простейший сильно сказано. Надо реализовать MODBUS TCP протокол с одной стороны и обращение к СУБД с другой стороны. Причем обращение с помощью С++ API самой СУБД, так как ADO или ODBC на линуксе нет. У меня все это сделано на Linux Centos и на Debian с базой Postgresql. В качестве железа стандартный Х86_64 комп. Задачка точно не простейшая.
Цитата:
Сообщение от ailcat Посмотреть сообщение
Либо, если нет требований к жесткому онлайну (например, допустимы задержки до пары минут - чем больше тем лучше) - можно и проще:
- в FBD программе для контролируемых данных задействуйте элемент History
- настраиваете его на ежеминутный экспорт данных в файл excel/csv.
- средствами СУБД ежеминутно импортируете полученный файл в свою БД
- после импорта удаляете файл (некоторые СУБД это умеют).
Делаете средствами СУБД всё что левая пятка правой ноги захочет.
Только не забудьте, что у контроллера не жесткий диск с большим ресурсом а EEPROM, который таким способом можно уничтожить за пару тройку месяцев.
Цитата:
Сообщение от ailcat Посмотреть сообщение
Ну и главное:
БД и прочую фигню гораздо разумнее делать на универсальном ПК с полноценным дисплеем (замониторные "неттопы" недороги и довольно мощны) и, главное, на них есть полноценная ОС с не менее полноценными СУБД.
UPD:
У контроллеров ViewPAC есть 7 и 10-дюймовые панели с полновесной Windows Embedded. Это как раз та платформа, которая идеально подойдёт под озвученную задачу.
Windows Embedded точно не лучшая ОС для этой задачи. По производительности проиграет любому консольному линуксу (без иксов), хотя уже кое что и использовать можно. Опробовано на практике работает больше года без остановок и сбоев такая конфигурация.

Ну и главное то, что в контроллерах Сегнетикс уже есть встроенная СУБД SQLite (если не ошибаюсь). Можно ли ее использовать и как - это уже вопрос к Сегнетиксу.


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием
Старый 03.08.2019, 11:50   #9
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Создание базы данных

Выскажу свое мнение:

1. База данных, которая упоминалась в начале сообщения никакого отношения с СУБД типа Postrgress, SQLite и т.п. не имеет.

В начальном сообщении, скорее, был описан элемент пользовательского интерфейса, наподобие Search suggest drop-down list, и реализация которого сейчас в SMLogix или невозможна в принципе, или только с громадными нереально переусложненными костылями. И никакие C++ здесь не помогут.

2. Если заказчик хочет хороший интерфейс любой сложности, а бонусом получить возможность мониторить и контролировать оборудование из любой точке земли, то нужно подключить контроллер к сети и делать мобильное приложение и программу-сервер для шлюзование запросов от мобильного приложения к контроллеру и обратно.

В мобильном приложении можно сделать интерфейс какой угодно, т.к. мобильные платформы под это и заточены. Сюда же можно отнести и создание Web-интерфейса.
Gel вне форума   Ответить с цитированием
Старый 05.08.2019, 11:23   #10
dp38
Senior Member
 
Регистрация: Sep 2012
Сообщения: 171
Благодарил(а): 4 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Создание базы данных

Цитата
Сообщение от Gel Посмотреть сообщение


В начальном сообщении, скорее, был описан элемент пользовательского интерфейса, наподобие Search suggest drop-down list, и реализация которого сейчас в SMLogix или невозможна в принципе, или только с громадными нереально переусложненными костылями. И никакие C++ здесь не помогут.
Совершенно верно! Именно такая штука и нужна. Можно её реализовать на TRIMе или нужно другое железо?


Добавлено через 16 минут

Добрый день.
Уточню задачу.
1. Есть технологический процесс, с использованием 10-ти различных параметров. Нужно создать базу "рецептов" из 999(абстрактно) различных значений этих 10 параметров.
2. Каждый "рецепт" сохраняется в базе с текстовым именем (до 10 символов)
3. Для выбора "рецепта" служит строка поиска с выпадающим списком имеющихся вариантов по первым набранным символам.
4. Возможность записать/считать базу "рецептов" на внешний носитель (модуль памяти) для тиражирования на другие станки.
dp38 вне форума   Ответить с цитированием
Старый 05.08.2019, 16:59   #11
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Создание базы данных

SMLogix не заточен для ввода, вывода и манипуляциями с динамическими строками.

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

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

Так же, у вас в требованиях ничего не упомянуто про создание/редактирования такого набора рецептов. Полагаю, что вы хотите это все тоже видеть в интерфейсе контроллера. Но подумайте, подойдет ли вам сценарий, когда это редактирование можно делать на обычном компьютере в текстовом редакторе. Т.е. на флешке можно создать текстовый файл по определенным правилам, потом эту флешку вставить в контроллер и он сохранит набор рецептов во внутренней памяти.

Это будет проще в разработке. Возможно, это так же будет проще в использовании.

Если вам нужна платная помощь разработчика (программиста), пишите в личку.
Gel вне форума   Ответить с цитированием
Старый 29.10.2019, 10:03   #12
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 563
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: Создание базы данных

Хочу написать про результаты работы по данной теме.

Во первых, показать, в каком виде можно сделать данный функционал.
И во вторых, если у кого-то есть потребность в подобном функционале, то можно его заказать, отправляйте личные сообщение.

Кратко, что было сделано в рамках работы.

1. Создана служба "базы данных".
2. Создана базовая FBD-программа для демонстрации функций.
3. Служба упакована в DEB-файл для простой установки.
4. Написаны поясняющие документы.

Для лучшей иллюстрации, прикладываю два документа.

1. Описаний FBD-программы, файл demo.pdf.
2. Описаний процедуры установки службы на контроллер, файл recipe-db-install.pdf.
Вложения
Тип файла: pdf demo.pdf (407.6 Кбайт, 113 просмотров)
Тип файла: pdf recipe-db-install.pdf (300.1 Кбайт, 75 просмотров)
Gel вне форума   Ответить с цитированием
Благодарность от:
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SMH2G(i)+USB модем - отправка данных на сервер a.s.bibars Вопросы о SMH-2G(i) 2 27.01.2020 11:09
Pixel as slave, с сохранением данных в EEPROM uzzzer Вопросы о Pixel 10 23.08.2018 16:42
ошибка базы данных, после перепрошивка ядра кирпич. masterzx Вопросы о SMH-2G(i) 3 21.08.2018 19:10
Получение данных от Pixel по Modbus ngs Связь с внешним миром 5 30.08.2016 15:04
Как изменить формат данных Modbus в 2Gi на 8N1? AlekSir Связь с внешним миром 29 23.04.2013 09:42


Часовой пояс GMT +4, время: 20:11.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023