PDA

Просмотр полной версии : Некорректная работа функции 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]) выход возвращает 'Ї' .
Это я что-то неправильно делаю, или ошибка в функции?

capzap
27.11.2020, 10:11
Добрый день. В документации к функции 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'

Вот цитата из документации к этой функции.

capzap
27.11.2020, 10:23
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".

capzap
27.11.2020, 10:40
на какую документацию Вы в таком случае ссылаетесь
официально есть 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 -- тот вариант, что я выше приводил.
Наверное, поправили ошибки в интернетах.

capzap
27.11.2020, 10:55
тот документ относится к овеновской билиотеке, разработаной не немцами, возможно учтены все не совершенства базового варианта

PS кстати и к немцам претензий нет 52208, откуда Вы взяли такую инерпретацию не понятно

saii
28.11.2020, 01:23
на какую документацию Вы в таком случае ссылаетесь
официально есть https://ftp.owen.ru/CoDeSys3/11_Docu...Utils_v2.1.pdf там что то подобное может быть только с таким именем у функции WORD_TO_HEX_STR
Эта ересь написана в оффлайновой справке на CD3.5 util.chm, вплоть до версии 3.5.16.30 :confused: