Ответы в темах
-
АвторЗаписи
-
qweqweqwe
УчастникДрайвер новой версии оправляет дополнительный код возврата каретки.
в старой версии
Отправка (16): $0002RR000008B2<0D>
Приём: !0002RR29FEB041BEC93C4233в новой
Отправка (17): $0002RR000008B2<0D><0A>
Приём: нет данныхqweqweqwe
Участникqweqweqwe
УчастникСвойств драйвера нет, окно с настройками есть только в интерфейсе настроек устройства на линии связи, работает без ошибок.
qweqweqwe
УчастникНа контроллере помимо Rapid SCADA установлен софт для приёма данных с радио датчиков, который пересылает показания по MQTT на родной брокер контроллера, оттуда данные забирает SCADA, ну и при отклонении показаний лампочками моргает, иволгой поёт.
Данные сохраняются на встроенную память, при настройке, как описано в инструкции, с ram-диском, навряд ли она выйдет из строя раньше чем остальные компоненты контроллера. По моему опыту эти железки живут более 7 лет при сценарии сбора и передачи десятка показателей в верхнюю SCADA систему через различные протоколы. Не думаю что приложения Сервер и Вебстанция станут причиной быстрого износа памяти.qweqweqwe
УчастникДобрый день!
Посмотрите тему https://forum.rapidscada.ru/?topic=rapidscada-%d0%b2%d0%b7%d0%b0%d0%b8%d0%bc%d0%be%d0%b4%d0%b5%d0%b9%d1%81%d1%82%d0%b2%d0%b8%d0%b5-%d1%81-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d0%be%d0%b9-%d0%b8%d0%b7-1%d1%81
в ней пример взаимодействия как напрямую так и через стороннюю БД.qweqweqwe
УчастникДобрый день! У меня на wirenboard 8 всё влезло с грификами/автоуправлением/телеграммой и место осталось. Модель брал сразу на 64Г встроенной памяти. Устанавливал по инструкции отсюда https://wirenboard.com/wiki/Rapid_SCADA

qweqweqwe
Участник#30772 нужно присвоить величины в соответствующей таблице и ID брать из неё! Размерности из соответствующей таблицы здесь не при чём.
qweqweqwe
УчастникПрограмма
readelfу меня не установлена, не могу проверить.qweqweqwe
УчастникБлагодарю за помощь!
Установка пакета libfontconfig1 и его зависимостей решила проблему.
Выводldd libSkiaSharp.soдо установкиlinux-vdso.so.1 (0x00007fff1df1b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f310039d000)
libfontconfig.so.1 => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3100398000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f30ff721000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f30ff540000)
/lib64/ld-linux-x86-64.so.2 (0x00007f31003a7000)и после
linux-vdso.so.1 (0x00007ffca9987000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3ce7930000)
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f3ce6db5000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3ce792b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3ce6cd6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3ce6af5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3ce793b000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f3ce6a2b000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f3ce6a00000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f3ce69e1000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f3ce69ab000)
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f3ce791c000)
libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f3ce6988000)qweqweqwe
УчастникВерсия Debian GNU/Linux 12 (bookworm).
Лог после того как подложил файл libSkiaSharp.so в /opt/scada/ScadaWeb/
(sudo cp /opt/scada/ScadaWeb/runtimes/linux-x64/native/libSkiaSharp.so /opt/scada/ScadaWeb/):2024-08-06 16:55:59 [sensor][root][ACT] Приём базы конфигурации
2024-08-06 16:56:00 [sensor][root][ACT] База конфигурации получена успешно
2024-08-06 16:56:00 [sensor][root][INF] Приложение готово к работе
2024-08-06 16:56:06 [sensor][root][ERR] Необработанное исключение:
System.TypeInitializationException: The type initializer for ‘SkiaSharp.SKImageInfo’ threw an exception.
—> System.DllNotFoundException: Unable to load shared library ‘libSkiaSharp’ or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you’re using glibc, consider setting the LD_DEBUG environment variable:
libfontconfig.so.1: cannot open shared object file: No such file or directory
libSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/libSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp: cannot open shared object file: No such file or directoryat SkiaSharp.SkiaApi.sk_colortype_get_default_8888()
at SkiaSharp.SKImageInfo..cctor()
— End of inner exception stack trace —
at SkiaSharp.SKImageInfo..ctor(Int32 width, Int32 height)
at Scada.Web.Code.Captcha.WriteImage(Stream stream, String text)
at Scada.Web.Code.Captcha.GenerateImageSrc(String text)
at Scada.Web.Pages.LoginModel.GetCaptchaImage()
at Scada.Web.Pages.Pages_Login.<>c__DisplayClass31_0.<<ExecuteAsync>b__1>d.MoveNext()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(Boolean useCachedResult, HtmlEncoder encoder)
at Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
at Scada.Web.Pages.Pages_Login.ExecuteAsync()
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)qweqweqwe
Участник@a80808
Пароль можно запросить у поставщика, ещё должен быть вписан в паспорте.
Да, забыл, изменения нужно записать в систему командойlbu_commit -v
Старую версию ПО тоже можно настроить, смысл тот же)
qweqweqwe
Участник@scril
Добрый день! Радиомодули для датчиков передают данные по lora на центральный блок, в котором крутится приложение для передачи измерений в SCADA. К raspberry можно подключится по SSH и настроить новые датчики. В софте есть конфиги приложения приёма и декодирования посылок /etc/anemon/im880b_mqtt_client/config.json, в нём измените false на true в этом месте:«publish_all_devices»:false,
остановите приложение командой
/etc/init.d/rscm/im880b_mqtt_client stop
запустите приложение в отладке и ловите сообщения от новых датчиков
/media/mmcblk0p1/anemon/bin/im880b_mqtt_client -ds -c /etc/anemon/im880b_mqtt_client/config.json
будет строчка вида
\»rcv_id\»:9999,\»original_dev_id\»:6666,\
возвращаемся в редактирование конфига и дописываем новый радиомодуль
«6666»:200
сохраняем, перезапускаем приложение
/etc/init.d/rscm/im880b_mqtt_client restart
дописываем в конфигурацию приложения передающего данные в SCADA
/etc/anemon/rscm/config.json
«200»: {
«enabled»: true,
«subscribe»: «/devices/anemon-9999-200/controls/Rssi»,
«update_interval»: «660s»,
«skip»: 2,
«round»: 2
},и перезапускаем его
/etc/init.d/rscm restart
в SCADA смотрим наличие данных
далее создаём каналы, логику и т.д.qweqweqwe
Участник@mikhail Благодарю за помощь! Предложенное обновление решило проблему, команды стали отправляться корректно.
Конфигурацию модуля несколько раз редактировал в версии 6.0.0.4 пока искал причину проблемы, перенеслось в версию 6.1.0.0 без явных проблем.qweqweqwe
Участник



qweqweqwe
Участник@manjey73
На скрине 8 отправка в устройство 51, у меня это Email. После набора необходимого количества аргументов строка перестаёт парситься и отправляется как последний аргумент, то есть текст сообщения. Проверил это на прошлой версии, на другом объекте, когда не стал заморачиваться и сделал копию оповещений с заменой Email на Telegram. -
АвторЗаписи

