Стартовая страница › Форумы › Разработка и интеграция › Получение строки неизвестной длины
- В этой теме 38 ответов, 4 участника, последнее обновление 1 год, 12 месяцев назад сделано
Mikhail.
-
АвторЗаписи
-
30.06.2023 в 15:34 #29080
MikhailМодераторПредупреждения точно будут полезны. Запишу в список пожеланий.
01.07.2023 в 11:37 #29083
manjey73УчастникВот пример того, что со строками надо работать по разному. В одном случае мне нужен массив для отображения длинной строки. В другом случае это просто значение параметра, которое в принципе укладывается в 1 байт при том, что канал у нас double и мы имеем целых 8 байт.
Логика, протокол M4
2.1 Настроечные параметры Перечень настроечных параметров тепловычислителя приведен в таблицах 2, 3. При записи и чтении параметров этого типа используется единый формат передачи значений параметров – ASCIIString.А вот строка в текущих параметрах, это уже длинная на 5 элементов массива.
Возникает вопрос, если для обработки второго варианта я создаю массив, указываю тип строки ASCII то все хорошо.
Как в этом случае поступать с настроечными переменными, для Scada это просто цифры и надо подавать для изменения именно цифровые значения, преобразуя их драйвером в ascii и записывая в прибор. Если я их преобразую как с простым вариантом с строку, то потом в Scada придется писать формулы и крутить и туда и сюда…
В общем было бы проще в драйвере это сделать без дополнительных формул в Sсada но сам прибор предлагает строки в двух вариантах логики… где-то это текст, а где-то это значения представленные в строковом виде.02.07.2023 в 10:17 #29088
MikhailМодераторРазработчики прибора — оригиналы. Впрочем, не привыкать.
Вариант 1 — указать тип (строка или число) в параметрах устройства в Коммуникаторе.
Вариант 2 — завести раздельные теги для строк и чисел.При инициализации данных устройства выделяется массив нужной длины. Инициализация происходит при старте линии связи. Размер памяти, требуемый для строи или числа, различается. Поэтому нужно заранее знать, какие типы у тегов.
05.08.2024 в 07:28 #33780asutp42
УчастникПриветствую. Начал создавать проект на Rapid Scada и столкнулся с подобной ситуацией данные из SQL идут в драйвер BDImportPlus, далее тег в формате Unicode string вывожу в таблицу, но отображается первые 4 символа т.е 8 байт, и потом при обновлении данных в драйвере значение в таблицу не поступают (становятся серым). Отображать нужно кириллицу (ФИО). Как я понял в данном случае нормально будет работать, если формат данных Double, т.е нужно править драйвер или есть какие то другие инструменты??
05.08.2024 в 11:09 #33784
manjey73УчастникВам надо создать массив — указать Длину данных. Длину можно заведомо больше поставить для проверки. Каждая единица длины это 8 байт, 4 символа Unicode
Выбрать в типе данных Строка Unicode и в Формате указать stringПотом правда надо будет использовать формулы, если вы захотите не только отображать, но и изменять
05.08.2024 в 12:56 #33795
MikhailМодераторЖелательно найти тему по драйверу DbImportPlus и уточнить, поддерживает ли драйвер длинные строки.
05.08.2024 в 13:48 #33806asutp42
УчастникСудя потому что в логах не более 4х символов, действительно надо в драйвере копаться.
05.08.2024 в 13:52 #33807asutp42
УчастникПроблема разрыва связи с коммуникатором при выборе в Unicode string, тоже решается драйвером ?
06.08.2024 в 14:39 #33849
MikhailМодераторПричину, по которой каналы могли не привязаться к тегам «устройства», написал в той теме.
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.