кину, а на счет настройки pt 100 не чего сказать не можете?
кину, а на счет настройки pt 100 не чего сказать не можете?
доброго времени суток.
Есть ли в CoDeSys функциональный блок для копирования массива в массив, т.е. есть массив значений за день (24 элемента) его необходимо целиком скопировать в 1-ю ячейку массива за месяц (30 элементов) ??
суть в том, чтобы скопировать массив значений среднего расхода за 1-й день в 1-й элемент массива (за месяц), и т.д. пока не кончится месяц.
есть массив x[1...24], который надо скопировать в массив y [1...24] поэлементно. В st можно организовать все через цикл, но может быть есть библиотечная функция, которой можно сделать данную операцию в одно действие.
как пользоваться SysLibCpy не понятно...
Такое правильно будет работать только для однобайтовых типов. Более универсальный вариант:SysMemCpy(ADR(y),ADR(x),24)Код:SysMemCpy(ADR(y), ADR(x), MIN(SIZEOF(x), SIZEOF(y)))
capzap, Yegor спасибо, получилось!
Фигня какая-то. Если
и Xi и Yi одного типа, то просто :есть массив x[1...24], который надо скопировать в массив y [1...24]
Y := X;
Даже если Y двухмерный - Y[...,1..24]
Y[i]:=X;
если разного типа,то за исключением пар типа word/int/uint, манипуляция с sysmemcpy/move кинет просто мусор в Y, а "более универсальный вариант" просто застрахует от распространения мусора за пределы области Y и обращения к области за пределами X, и, часто, от зависания прям щас. Такая страховка с мin(sizeof1,sizeof2) для данного случая - как ношпа при апендиците. Лучше уж зависание прям щас на столе, чем в полях долго колупаться, выясняя почему проект как-то не так работает, и после долгих мучений обнаружить что в Y - мусор.
Надо учиться со школьной программы заново :-DY := X
Продалжаю марафон простых вопросов от новичков..)
Каким образом обнулить массив. Требуется, например, обнулить массив средних значений расхода за сутки в 00:00:00 часов?
Имеется ввиду функция, которая производит обнуление массива в одно действие.
:-\Код:SysMemSet(ADR(X), 0, SIZEOF(X))