Спасибо, я передала Вашу просьбу разработчикам
стандартные строковые функции в codesys могут работать только с 255 символами. Сколько символов поддерживают функции этой библиотеки ?
стандартное значение строки 80 символов, если указывать например STRING(255) то строка будет состоять из не более 255 символов, ради интереса может задать STRING(2048) и поместить туда примерно такое же количество символов, должно сработать. Поэтому если в функции стоит просто STRING строка будет не более 80 символов
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
В результате получаю:Код:sTmp := OSU.DT_TO_STRING_FORMAT(TargetVars.stRtc.dtDateAndTime, '%t[yyyyMMdd-HHmmss]');
И как это согласуется со строкой форматирования "yyyyMMdd-HHmmss"?20200816-13120001
20200816-13120002
20200816-13120003
20200816-13120004
20200816-13120005
20200816-13120006
20200816-13120007
20200816-13120008
20200816-13120009
20200816-131200010
20200816-131200011
...
20200816-131200058
20200816-131200059
20200816-13130000
Если использовать строку форматирования "mm" или "ss", то результат адекватный, а если "mmss", то аналогично приведенному выше, между минутами и секундами вставляется лишних 2-3 нуля.
Согласуется следующим образом:И как это согласуется со строкой форматирования "yyyyMMdd-HHmmss"?
yyyyMMdd-HHmmss
В использованном в функции алгоритме сначала выполняется подстановка миллисекунд, поэтому получается приведенный выше результат.
В вашем случае, на мой взгляд, проще всего сделать так:
Код:sTmp := OSU.DT_TO_STRING_FORMAT(TargetVars.stRtc.dtDateAndTime, '%t[yyyyMMdd-HHmm]'); sTmp := CONCAT(sTmp, OSU.ADD_CHAR(TO_STRING(TargetVars.stRtc.usiGetSecond), 2, '0', FALSE));
Последний раз редактировалось Евгений Кислов; 17.08.2020 в 07:53.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Не правильно согласуется, т.к. по правилам при разборе выражений всегда выбирается самая длинная лексема. И, если рассматривать разбор слева направо, это будет "mm", и тогда останется "ss". А у Вас получается, что сначала вычленили "m", потом вычленили "ms", потом вычленили "s".
P.S. Я так и сделал, как Вы написали. Но ошибку все-таки надо исправлять.
Подскажите, так будет аналог функций CP1251_TO_UNICODE и UNICODE_TO_CP1251 для версии V2?
Поясню где понадобилось.
Из кассы получаю название фирмы в кодировке 1251. Это название передаю на панель weintek. А последняя воспринимает только unicode.
Нет, не будет - версия V2.3 логично завершила свое развитие.
Сами 3S уже год как официально прекратили выпуск каких-либо патчей (а реально обновлений функционала не было уже лет 7-8), поддержку и продажу рантайм тулкитов.
Я удивлюсь, если у Weintek нету способов выводить строки в Win1251.
Но даже если это и так - то есть примеры макросов для конвертации кодировок.
В следующий раз рекомендую рассмотреть СП3xx - с ней бы таких проблем не возникло. )))
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk