Нативные функции

Перечисленные ниже функции можно использовать при создании собственных блоков, в соответствии с их описанием. Обратите внимание, что использование функций, производящих запись в память ПЛК, может привести к полному выходу контроллера из строя, если будет произведено затирание системных данных в памяти ПЛК - все эксперименты проводите в виртуальном ПЛК и учитывайте, что объём памяти у различных контроллеров - разный - старайтесь не использовать абсолютную адресацию!

copy_to_cache(dest, src, len)

Функция производит чтение данных из памяти ПЛК в массив src.

dest - адрес памяти в ПЛК с которого начинается чтение

src - элемент массива, начиная с которого будет происходить запись из памяти ПЛК

len - количество элементов для чтения+ тип элемента (пояснение формата ниже).

copy_from_cache(dest, src, len)

Функция производит запись данных в память ПЛК по адресу dest из исходного массива src.

dest - адрес в памяти ПЛК в который будет производиться запись данных из массива;

src - элемент массива, который будет записан в память ПЛК - запись будет производиться с указанного элемента;

len - количество элементов для записи + тип элемента (пояснение формата ниже).

Размер поля len - 4 байта. Количество элементов задаётся в двух младших байтах, а в старших задаётся тип элементов:

1 - byte

2 - short

Если мы объявим в блоке входящую переменную "x" ссылочным типом short и подключим к этому входу массив из 6-ти элементов типа short, то, создав массив "data" внутри блока, мы сможем записать данные из массива в переменную (произведя запись в память ПЛК по адресу переменной "x"):

new data[6];
for(new i = 0; i < 6; i++) data[i] = i;
copy_from_cache(x[0], data[1], (5 | (2 << 16)));

В результате в массив, подключенный ко входу "x" будут записаны 5 элементов типа short - от 1 до 5 в регистры массива от 0 до 4. Использовать переменную "data" без указания на индекс массива в данной функции нельзя - будет выдана ошибка при компиляции проекта.

 

 

При появлении любых вопросов по данной или любой другой статье на портале - задавайте их через форму обратной связи!

Метаданные статьи

Идентификатор статьи:
12
Рейтинг :