Стартовая страница › Форумы › Понять, как работает ПО › Xml, БД, внешнее приложение
- В этой теме 38 ответов, 5 участников, последнее обновление 2 года, 5 месяцев назад сделано Mikhail.
-
АвторСообщения
-
24.06.2021 в 17:14 #20206a80808Участник
Здесь я не про вызов, здесь я про запуск приложения как службы…
А вызов приложеня…например по сасикам или кнопке вызыватть какой то спец фичный опросчик устройства, либо через стороннее приложение данные передать…почту отправить, SSMS..да мало ли…24.06.2021 в 17:16 #20207a80808УчастникДа те же GET/POST на произвольный сайт…
25.06.2021 в 11:12 #20213vgУчастникИмел ввиду, что интеграция должна осуществляться через сетевые протоколы или базы данных. Для чего нужен непосредственный вызов стороннего приложения?
В моём случае для формирования отчётов, которые нужны заказчику в формате Word/Excel, которые нельзя сделать штатными средствами. Или, например, если SCADA-система является частью поставляемой системы и нужен запуск некоторого компонента, являющегося самостоятельным приложением, по расписанию или по команде управления.
25.06.2021 в 15:39 #20217MikhailМодераторЕсли Вы сами пишете программу для формирования нестандартных отчётов, сделайте её как службу с поддержкой TCP сокета, чтобы она принимала команды на формирование отчётов от Rapid SCADA по TCP.
30.09.2021 в 17:00 #20932vgУчастникЕсли Вы сами пишете программу для формирования нестандартных отчётов, сделайте её как службу с поддержкой TCP сокета, чтобы она принимала команды на формирование отчётов от Rapid SCADA по TCP.
Всё таки возникающие сложности при эксплуатации системы заставили меня с Вами согласиться 🙂 и, видимо, служба это хорошее решение. А как в таком случае отдавать команду в эту службу по TCP? Насколько я понимаю, мне нужно установить мою службу(приложение) на определённом порту. В этой службе мне нужно создать регистр для приёма значений? Если так, то тогда можно по Modbus TCP передать значение в этот регистр. И ещё вопрос: если у сервера изменится IP-адрес, то в этом случае, если я правильно понимаю, нужно будет в экземпляре Rapid Scada менять настройки линии связи и КП, что не очень то удобно.
К тому же, если мне удастся реализовать приложение в виде службы, то можно будет отказаться от ScadaServerMono и пользоваться обычной службой севера Rapid Scada. Одни, блин, плюсы. Точно надо так делать.01.10.2021 в 16:09 #20940MikhailМодераторВ общем случае Ваша служба открывает заданный в настройках или в константах TCP-порт, и готова к приёму команд. Но не хотелось бы реализовывать разбор команд и передачу ответа побайтно, как это сделано в SCADA-Сервере — это лишняя сложность.
Есть готовые средства. Рекомендую посмотреть SignalR и gRPC. Выберите наиболее простой вариант.
01.10.2021 в 16:14 #20941MikhailМодераторКто или что будет подавать команды Вашей службе?
01.10.2021 в 16:15 #20942MikhailМодераторЕщё вариант — использовать MQTT-брокер для обмена данными. Одно приложение публикует некоторую информацию на брокер. Другое приложение её забирает. Аналогично SignalR.
01.10.2021 в 16:31 #20946MikhailМодераторЕсли реализовывать обмен по TCP на низком уровне, то за основу можно взять исходники ScadaAgent.- Этот ответ был изменен 2 года, 5 месяцев назад от Mikhail.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.