PDA

Просмотр полной версии : Форматирование вывода в CodeSys



alex1963
09.12.2008, 21:19
А нельзя ли в порядке развития системных библиотек сделать sprintf() в CodeSys? Я даже подозреваю, что она там есть где-то в недрах, нужно только вытащить на интерфейс. Это позволило бы избежать танцев с бубном, то бишь с крайне примитивными INT_TO_STRING(), REAL_TO_STRING(), типом STRING, которые на ПЛК выгдядят особенно неуместно.

Малышев Олег
10.12.2008, 10:10
oscat.de

REAL_TO_StrF
Возможно поможет

Насчет вытаскивания sprintf, есть определенные сомнения по поводу формирования списка аргументов. Просто передать указатель на специально подготовленный массив указателей - проблема при распаковке внутри. К тому же злой ARM (процессор) не принимает ошибочное выравнивание. Поэтому при упаковке/распаковке придется это учитывать. Вообщем не стоит это усилий.

Я извиняюсь за Международный Технический Комитет, который в далеком 198х году не учел пожелания ВСЕХ программистов. А если серьезно, любой язык призван обеспечить функционал для того применения где это нужно. У языков IEC 61131-3 свои задачи и форматирование строк на контроллерах, ИМХО, это мало востребованая функция.

alex1963
10.12.2008, 14:10
Насчет вытаскивания sprintf, есть определенные сомнения по поводу формирования списка аргументов.

Ну, тогда по кусочкам :). В принципе устроило бы наличие отдельных преобразований для %i, %f, %X, но конечно, с параметрами width, precision. Возможно, Вы на это ссылку и давали, но увы - я по немецки не спикаю :(.

Малышев Олег
10.12.2008, 14:52
Качайте одну библиотеку - она доступна в исходниках. Да и комментарии на английском.

Игорь Петров
16.12.2008, 12:47
Кстати, если говорить о визуализации в CoDeSys, то sprintf() в ней реализован. Обычно в поле вывода текста пишут '%s', но тут можно писать любые форматы printf.