Показать сообщение отдельно
Старый 23.10.2019, 20:36   #45
ujin
Senior Member
 
Аватара для ujin
 
Регистрация: May 2010
Адрес: Novosibirsk
Сообщения: 761
Благодарил(а): 1 раз(а)
Поблагодарили: 10 раз(а) в 10 сообщениях
По умолчанию Ответ: Функционал

Цитата:
Сообщение от Gel Посмотреть сообщение
Я собирал 10000 значений в секунду, и отдавал 6000 управляющих команд в секунду:
Снимаю шляпу, пошел серьезный разговор. Позвольте уточнить данные собирались с контроллеров Сегнетикс с подключенными модулями ввода вывода по шине Сегнетикс? В скриншоте есть цифра 265 ошибок. Как Вы на них реагировали.
На экране у Вас Тест. Вы испытывали на реальном производстве хотя бы год? Это было бы большим плюсом.
Цитата:
Сообщение от Gel Посмотреть сообщение
Кстати, заказчику предлагалось обновить систему и сделать возможность ее работы на оборудовании Segnetics вместо промышленного компьютера с Windows. Так что я оцениваю возможности контроллеров, как подходящие для этой задачи.
Аппаратные возможности и ОС да. Но это не все.
Цитата:
Сообщение от Gel Посмотреть сообщение
Хоть по USB, хоть по LAN.
С этим пунктом согласен. LANа у Вас 2 шт. Теперь в матриксе тоже планируете.
Цитата:
Сообщение от Gel Посмотреть сообщение
Никак, лоджик не предназначен для таких задач.
Спасибо за адекватную оценку. Тогда чем? В модулях ввода вывода данные не в технологических единицах. Значит нужно перевести. Далее добавить оценку достоверности, далее диагностику датчика. Где-то нужно добавить время появления данных. Допустим вы получили 1000 или 10000 значений. Далее есть функция нормализации. Значит нужен входной массив, цикл, выходной массив. Подскажите как планируете решать данную задачу матриксом или другим контроллером Сегнетикс.
Если не контроллером сегнетикс, как планировали обходиться без промышленного компьютера.
Цитата:
Сообщение от Gel Посмотреть сообщение
Ели будет зачем-то нужно, то без проблем.
Здесь Вы ошибаетесь. Если сохранять данные влоб без сжатия упираемся в длину кортежа. В PostgreSQL это примерно 1200 значений. В больших системах пакуют значения в тип двоичные данные. При чтении их нужно опять распаковать. Возможно Вы тестировали такое решение в контроллерах Сегнетикс на SQLite?
Цитата:
Сообщение от Gel Посмотреть сообщение
Собирал большое число параметров за 10000 км (другой континент).
Это говорит в пользу моего варианта Ethernet в качестве единственного варианта интерфейса.
Выше я обращал Ваше внимание на Вашу цифру 265 ошибок. Если система работает без остановок круглосуточно, то каждая из этих ошибок может иметь различные последствия, в зависимости как Вы запрограмируете реакцию на эти ошибки. Не реагировать совсем нельзя.
Мы пришли тому, что при любой ошибке например в номере посылки или по таймауту - дисконект, затем снова коннект. Так 3 попытки. На это время данные держим старые. Разорванное соединение, тем временем, через 2,5 мин. благополучно протухает. После трех неудачных попыток повторного соединения снимается сигнал есть связь. Таким способом из непромышленного протокола получаем вполне промышленный. Но есть модули с поддержкой промышленных протоколов через Ethernet. Немного дороже и свичи немного дороже.
Итого на 60 модулей в сутки были от единиц до пары десятков ошибок в пакетах. Обрабатываются без сбоев. В 485 интерфейсе вся та же самая картина. Только скорость меньше и ошибок гораздо больше.
Вы проделали огромную работу, получили впечатляющий результат. Я получил по обмену почти такой же, только работы сделал гораздо меньше и уже применяю несколько лет. У меня узкое место только запись в БД. Вы за эту задачу пока не брались.
Дальнейшие перспективы тоже можете сравнить.
Могу направить Вам свой вариант, если есть кто в Labview разбирается.


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

Цитата:
Сообщение от Arsie Посмотреть сообщение
А если про виртуальные, т.е. про сетевые переменные, то я своими руками делал систему сбора данных на 2Gi примерно на 3500 точек данных, получаемых с модулей и полевых систем. Далее это всё проверялось на валидность и улетало по Modbus-TCP выше, дополненное флагами валидности и отметками времени.
Это интересный пример. С каких модулей и по каким интерфейсам вы получали данные. Какой был цикл опроса? Можете привести кусок программы обработки 3500 значений. Каким образом Вы на лоджике обошлись без массивов и циклов. Хотел бы показать альтернативный вариант. Это сделает работу программистов контроллеров Сегнетикс в разы более эффективной.
У меня на фотографиях объекты на Ваших контроллерах, на TAC Xenta, на ICP CON, ранее были на Ремиконтах. По 300-800 каналов. Есть несколько полностью автоматических котельных. Самая мощная котельная с полностью моими программами на ремиконтах паровая на 48 тонн пара в час.
Задача с 4 и более насосами у меня решена. Задача с 4 и более котлами тоже решена. На Ваших контроллерах и лоджике в том числе. Если судить по результатам пойдет моя квалификация для возможности высказывать мнение относительно функционала?
Цитата:
Сообщение от Arsie Посмотреть сообщение
Готов обсудить то, с чем у вас у вас случились проблемы.
[/QUOTE]
Проблемы с записью значений в базу данных. Если делать простейшим способом упираемся в длину кортежа около 1200 значений. Если потребуется записывать больше 1200 значений в 100 мс, то потребуется приложить дополнительные усилия. Разбивка на пакеты, постановка очередь. Еще больше данных - потребуется перепаковка в двоичные данные и обратная распаковка. У Вас в функционале матрикса будет готовое решение этой задачи на количество более 1200 значений?


__________________
В жизни 2 правила успеха:
1 Не говори всего что знаешь
2 ...
ujin вне форума   Ответить с цитированием