Просмотр полной версии : Некорректная работа функции WORD_AS_STRING
fatlortroll
27.11.2020, 10:01
Добрый день. В документации к функции WORD_AS_STRING (Util -> HEX/ASCII Functions) заявлено, что данная функция возвращает ASCII-интерпретацию WORD-а, поданного на вход.
Как пример, при входном значении 16#AF выходная строка должна иметь вид 'AF'.
На практике (CoDeSys V3.5 SP14 Patch 3 + (32-bit), СПК107 [М01]) выход возвращает 'Ї' .
Это я что-то неправильно делаю, или ошибка в функции?
Добрый день. В документации к функции WORD_AS_STRING (Util -> HEX/ASCII Functions) заявлено, что данная функция возвращает ASCII-интерпретацию WORD-а, поданного на вход.
Как пример, при входном значении 16#AF выходная строка должна иметь вид 'AF'.
На практике (CoDeSys V3.5 SP14 Patch 3 + (32-bit), СПК107 [М01]) выход возвращает 'Ї' .
Это я что-то неправильно делаю, или ошибка в функции?
наверное что то не правильно поняли, 16#AF это в десятичной системе 175, а в кодировке cp1251 это тот символ который у Вас выходит 52207
fatlortroll
27.11.2020, 10:20
Converts one word into its ASCII string representation
Example:
Input: '16#AF'
Byte order: FALSE
->
String: 'AF'
Вот цитата из документации к этой функции.
Converts one word into its ASCII string representation
Example:
Input: '16#AF'
Byte order: FALSE
->
String: 'AF'
Вот цитата из документации к этой функции.
а до этого Вы написали: "заявлено, что данная функция возвращает ASCII-интерпретацию WORD-а, поданного на вход" что соответствует тому что я показал
fatlortroll
27.11.2020, 10:27
Да, тут некоторая путаница присутствует. Как я понимаю (и как показано в документации) -- ASCII-интерпретация некоторого WORD-а представляет собой запись его символов (цифр) в ASCII-формате. Т.е. (опять же по докуменнтации) 16#DEAD проинтерпретируется как строка "DEAD".
на какую документацию Вы в таком случае ссылаетесь
официально есть https://ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_OwenStringUtils_v2.1.pdf там что то подобное может быть только с таким именем у функции WORD_TO_HEX_STR
fatlortroll
27.11.2020, 10:48
Интересно-интересно, документация на help.codesys.com прям сильно отличается от документации, поставляемой с CoDeSys. В интернетах -- да, указано, что каждый байт WORD-а интерпретируется, как ASCII-символ, а в CoDeSys -- тот вариант, что я выше приводил.
Наверное, поправили ошибки в интернетах.
тот документ относится к овеновской билиотеке, разработаной не немцами, возможно учтены все не совершенства базового варианта
PS кстати и к немцам претензий нет 52208, откуда Вы взяли такую инерпретацию не понятно
на какую документацию Вы в таком случае ссылаетесь
официально есть https://ftp.owen.ru/CoDeSys3/11_Docu...Utils_v2.1.pdf там что то подобное может быть только с таким именем у функции WORD_TO_HEX_STR
Эта ересь написана в оффлайновой справке на CD3.5 util.chm, вплоть до версии 3.5.16.30 :confused:
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot