Codesys (824048), страница 58

Файл №824048 Codesys (Руководство пользователя по программированию ПЛК в Codesys) 58 страницаCodesys (824048) страница 582021-01-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 58)

Для этогоуказывается номер бита, начиная с 0 через точку после имени.a : INT;b : BOOL;...a.2 := b;В примере значение третьего бита переменной a будет присвоено переменной b.Если указанный номер бита превышает размер типа, формируется специальное сообщение: «Index'<n>' outside the valid range for variable '<var>'»Битовая адресация применима для типов :SINT, INT, DINT, USINT, UINT, UDINT, BYTE, WORD,DWORD.Если битовая адресация для данного типа не поддерживается, CoDeSys формирует сообщение:«Invalid data type '<type>' for direct indexing»Битовую адресацию нельзя использовать с переменными VAR_IN_OUT!Битовая адресация через глобальные константыЕсли объявить целую глобальную константу, то ее можно будет затем использовать для доступа к битам. Например, так:Объявление константыVAR_CONSTANT GLOBALenable:int := 1;END_VARПример 1, битовая адресация через константу:Объявление POU:VARxxx:int;END_VARБитовая адресация:xxx.enable := true; (*установлен в единицу второй бит переменной xxx *)Пример 2, битовая адресация к элементу структуры:Объявление структуры stru1:TYPE stru1 :STRUCTbvar: BOOL;rvar: REAL;wvar: WORD;{bitaccess: 'enable' 42 'Start drive'}CoDeSys V2.310-33Приложение В: Операнды в CoDeSysEND_STRUCTEND_TYPEОбъявление POU:VARx:stru1;END_VARБитовая адресация:x.enable := true;Эта инструкция установит 42й бит переменной x.

Поскольку bvar занимает 8 бит, rvar занимает 32 бита, а битовый доступ обращается ко второму биту переменной wvar, получающей в результате значение 4.Внимание: Для правильного отображения переменной, выполняющей битовый доступ к структурам через глобальную константу, в Ассистенте ввода при мониторинге в окне объявления и при использованииинтеллектуального ввода используйте команду компилятора pragma {bitaccess}.

В этом случае, кроме значения переменной, вы увидите и значение данного бита:10.12 АдресаПрямое указание адреса дает способ непосредственного обращения к конкретной области памяти.Прямой адрес образуется из префикса "%", префиксов области памяти и размера, одного или нескольких целых чисел, разделенных точкой.Префиксы области памяти:IВходыQВыходыMПамять данныхПрефиксы размера:CoDeSys V2.3XОдин битОтсутствуетОдин битBБайт (8 бит)10-34Приложение В: Операнды в CoDeSysWСлово (16 бит)DДвойное слово (32 бит)Примеры:%QX7.5 и %Q7.5бит 7.5 в области выходов%IW215215е слово в области входов%QB7байт 7 в области выходов%MD48двойное слово в позиции памяти 48%IW2.5.7.1зависит от конфигурации PLCЯвляется ли последний указанный адрес значимым, будет определяться конкретной конфигурациейPLC.Примечание: По умолчанию логические переменные занимают один байт, если в объявлении не указан прямойбитовый адрес.

См. также битовые операции в приложении A.Распределение памятиОбразование прямых адресов зависит от размера адресуемых данных.Так, например, адрес %MD48 адресует в области памяти двойное слово 48 или байты 192, 193, 194 и195 (48 * 4 = 192). Нумерация начинается с 0.Адрес %MX5.0 означает младший бит пятого (считая с нуля) слова памяти.10.13 Функции в роли операндовВ языке ST результат вызова функции может использоваться как операнд.Пример:Result := Fct(7) + 3;CoDeSys V2.310-35Ошибка! Стиль не определен. - Ошибка! Стиль не определен.Приложение С: Типы данных CoDeSysТип данных определяет род информации и методы ее обработки и хранения, количество выделяемой памяти.

Программист может непосредственно использовать элементарные (базовые) типы данных или создавать собственные (пользовательские) типы на их основе.10.14 Элементарные типы данныхЛогический (BOOL)BOOL логический тип данных. Переменная может принимать 2 значения ИСТИНА (TRUE) или ЛОЖЬ(FALSE). Занимает 8 бит памяти, если не задан прямой битовый адрес (См. «10.12 Ареса»).ЦелочисленныеBYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, и UDINT - все это целочисленные типы.Они отличаются различным диапазоном сохраняемых данных и, естественно, различными требованиямик памяти. Подробно данные характеристики представлены в следующей таблице:ТипНижний пределВерхний пределBYTE02558 БитWORD06553516 БитDWORD0429496729532 Бит-1281278 Бит02558 Бит-327683276716 БитUINT06553516 БитDINT-2147483648214748364732 Бит0429496729532 БитSINTUSINTINTUDINTРазмер памятиОчевидно, присвоение данных большего типа переменной меньшего типа может приводить к потере информации.РациональныеREAL и LREAL данные в формате с плавающей запятой, используются для сохранения рациональныхчисел.

Для типа REAL необходимо 32 бита памяти и 64 для LREAL.Диапазон значений REAL от: 1.175494351e-38F до 3.402823466e+38FДиапазон значений LREAL от: 2.2250738585072014e-308 до 1.7976931348623158e+308СтрокиСтроковый тип STRING представляет строки символов. Максимальный размер строки определяет количество резервируемой памяти и указывается при объявлении переменной. Размер задается в круглых иликвадратных скобках. Если размер не указан, принимается размер по умолчанию – 80 символов.Длина строки не ограничена в CoDeSys, но строковые функции способны обращаться со строками от 1до 255 символов !Пример объявления строки размером до 35 символов:str:STRING(35):='Просто строка';CoDeSys V2.310-36Ошибка! Стиль не определен.

- Ошибка! Стиль не определен.Размер строк в CoDeSys не ограничен, но библиотека работы со строками поддерживает строки от 1 до255 символов.Время и датаTIME представляет длительность интервалов времени в миллисекундах. Максимальное значение длятипа TIME : 49d17h2m47s295ms (4194967295 ms).TOD содержит время суток, начиная с 0 часов.

Диапазон значений TOD от: 00:00:00 до 23:59:59.999.DATE содержит календарную дату, начиная с 1 января 1970 года. Диапазон значений от: 1970-00-00 до2106-02-06.DT содержит время в секундах, начиная с 0 часов 1 января 1970 года. Диапазон значений от: 1970-00-0000:00:00 до 2106-02-06-06:28:15.Типы TIME, TIME_OF_DAY (сокр. TOD), DATE и DATE_AND_TIME (сокр. DT) сохраняются физически как DWORD.Формат представления данных описан в разделе «10.10 Константы».10.15 Пользовательские типы данныхМассивыЭлементарные типы данных могут образовывать одно-, двух-, и трехмерные массивы.

Массивы могутбыть объявлены в разделе объявлений POU или в списке глобальных переменных. Путем вложения массивов можно получить многомерные массивы, но не более 9 мерных ( "ARRAY[0..2] OF ARRAY[0..3]OF …" ).Синтаксис:<Имя_массива>:ARRAY [<ll1>..<ul1>,<ll2>..<ul2>,<ll3>..<ul3>] OF <базовый тип>где ll1, ll2, ll3 указывают нижний предел индексов; ul1, ul2 и ul3 указывают верхние пределы.Индексы должны быть целого типа.

Нельзя использовать отрицательные индексы.Пример:Card_game: ARRAY [1..13, 1..4] OF INT;Пример инициализации простых массивов:arr1 : ARRAY [1..5] OF INT := 1,2,3,4,5;arr2 : ARRAY [1..2,3..4] OF INT := 1,3(7);(* сокращение для 3 по 7: 1,7,7,7 *)arr3 : ARRAY [1..2,2..3,3..4] OF INT := 2(0),4(4),2,3; (*сокращение для 0,0,4,4,4,4,2,3 *)Пример инициализации массива структур:TYPE STRUCT1STRUCTp1:int;p2:int;p3:dword;END_STRUCTARRAY[1..3] OF STRUCT1:= (p1:=1,p2:=10,p3:=4723),(p1:=2,p2:=0,p3:=299),(p1:=14,p2:=5,p3:=112);CoDeSys V2.310-37Ошибка! Стиль не определен. - Ошибка! Стиль не определен.Пример инициализации части массива:arr1 : ARRAY [1..10] OF INT := 1,2;Не инициализированные явно элементы массива принимают значения по умолчанию.

Так, в данном примере оставшиеся элементы примут значение 0.Доступ к элементам массива:Для доступа к элементам двухмерного массива используется следующий синтаксис:<Имя_массива>[Индекс1,Индекс2]Пример:Card_game [9,2]Примечание: Если определить в проекте функцию с именем CheckBounds, вы сможете контролировать нарушениедиапазона индексов массивов в проекте.Функция CheckBoundsОпределив в проекте функцию с именем CheckBounds, вы сможете использовать её для контроля за соблюдением границ индексов. Имя функции фиксировано, изменять его нельзя.Пример функции CheckBounds:FUNCTION CheckBounds : DINTVAR_INPUTindex, lower, upper: DINT;END_VARIF index < lower THENCheckBounds := lower;ELSIF index > upper THENCheckBounds := upper;ELSE CheckBounds := index;END_IFВ этом примере CheckBounds ограничивает индекс массива заданными границами.

Если запрашиваетсяэлемент, отсутствующий в массиве, функция CheckBounds возвращает ближайший элемент.Проверка работы функции CheckBounds:PROGRAM PLC_PRGVARa: ARRAY[0..7] OF BOOL;b: INT:=10;END_VARa[b] := TRUE;CoDeSys V2.310-38Ошибка! Стиль не определен. - Ошибка! Стиль не определен.Внимание: Функция CheckBounds, содержащаяся в библиотеке Check.Lib, представляет собой пример реализации.Прежде чем использовать эту библиотеку, убедитесь, что данная функция работает так, как нужно ввашем случае, либо создайте собственную функцию непосредственно в вашем проекте.УказателиУказатели позволяют работать с адресами переменных или функциональных блоков.Синтаксис:<Имя_указателя>: POINTER TO <Тип данных/Функциональный блок>;Указатели применимы для всех базовых типов данных или функциональных блоков, включая определяемые пользователем.Адреса переменных и функциональных блоков можно получить во время исполнения программы припомощи оператора ADR.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6295
Авторов
на СтудИзбе
313
Средний доход
с одного платного файла
Обучение Подробнее