Главная страница

Руководство пользователя по программированию плк в CoDeSys 3


Скачать 5.57 Mb.
НазваниеРуководство пользователя по программированию плк в CoDeSys 3
Дата25.10.2022
Размер5.57 Mb.
Формат файлаpdf
Имя файлаCODESYS_manual.pdf
ТипРуководство пользователя
#754593
страница43 из 50
1   ...   39   40   41   42   43   44   45   46   ...   50
Импорт из файла проекта S5
Компоненты (POU) читаются из файла программы Siemens S5 (*.s5d). Исходным является MC5 код, исполняемый S5 SPS. В целом MC5 код соответствует знакомым программистам инструкци- ям STEP5 IL (без символьных имен). Кроме того, S5D включает комментарии из исходного текста
STEP5. Поскольку S5D файл содержит абсолютные адреса без символических имен, CoDeSys оты- скивает соответствующие символические имена, определенные в проекте. Если таковые отсутст- вуют, абсолютный адрес остается без изменений. Именно поэтому символьный файл SEQ должен быть обработан до S5 файла.
Для начала вы указываете необходимый S5D файл в стандартном диалоге Windows. В следующем диалоговом окне вы должны просмотреть список POU и выбрать необходимые. Наиболее простой путь – выбрать все. Здесь же вы решаете оставлять компоненты в STEP5 IL либо конвертировать их в IL, LD или FBD.
Везде, где это возможно, CoDeSys будет отыскивать и включать в код символические имена. Так, для инструкции "U M12.0" он возьмет имя переменной, расположенной по адресу M12.0. Будет использовано первое объявление в проекте. В результате переменная будет импортирована как, например "U-Name" вместо "U M12.0".
Некоторые дополнительные глобальные объявления будут выполнены в процессе импорта. На- пример, экземпляр функционального блока R_TRIG будет добавлен при необходимости переклю- чаемого по фронту входа.
Конвертирование языка S5 в МЭК C 61131-3
При конвертировании STEP5 в МЭК языки вы должны знать, что некоторые части вашего проекта не могут быть автоматически преобразованы. Для кода, который не может быть конвертирован в
МЭК 61131-3, будет дано сообщение об ошибке, и критическая часть оригинального STEP5 IL бу- дет вставлена как комментарий в МЭК POU. В этом случае вы должны поправить текст вручную.
Не конвертируются системные команды, специфичные для конкретного CPU. Базовую часть ко- манд STEP5 можно преобразовать в МЭК нажатием клавиши даже в случае, если при этом меня- ется смысл кода.
Базовый список команд, которые конвертируются в МЭК 61131-3, содержит все команды, преоб- разуемые в LD или FBD в системе программирования STEP5, и также команды, допустимые в программных блоках STEP5-PB. Кроме того, общие для всех S5 CPU команды функциональных блоков (например, абсолютные и условные переходы, командах сдвига, и т.д.).
Единственное ограничение связано с переустанавливаемыми таймерами STEP5, которые не имеют прямых аналогов в МЭК 61131-3.
Конвертируемые команды:
U, UN, O, ON, S, R, = с операндами: I (входы), O (выходы), M (память), S (S память), D (блоки данных)
U, UN, O, ON с операндами: T (таймер), C (счетчик)
S, R с операндами: C
SU, RU, P, PN с операндами: E, A, M, D
O, O(, U(, )
L, T со следующим диапазоном операндов: E, A, M, D, T, C, P (Periphery) и размером операндов: B (byte), W (word), D (double word), L (left byte), R (right byte)
L со следующими форматами констант: DH, KB, KF, KH, KM, KT, KZ, KY, KG, KC
SI, SE, SA с операндами: T
ZV, ZR с операндами: C
+, -, X, : с операндами: F (фикс. запятая), G (плав. запятая)

Приложение G: Сименс импорт.
CoDeSys V2.3 10-81
+, - с операндами: D (32 бит фикс. запятая)
!=, ><, >, <, >=, <= с операндами: F, D, G
ADD с операндами: BF, KF, DH
SPA, SPB с операндами: PB, FB (с большинством типов параметров), SB
A, AX с операндами: DB, DX
BE, BEA, BEB
BLD, NOP, ***
UW, OW, XOW
KEW, KZW, KZD
SLW, SRW, SLD, RRD, RLD
SPA=, SPB=
SPZ=, SPN=, SPP=, SPM=
TAK
D, I
Большинство основных операторов
Не конвертируемые команды:
U, UN, O, ON, S, R, = с битовыми операндами: T0.0, C0.0 (таймер и счетчик)
L, T с диапазоном операндов: Q (расширенная периферия)
LC с операндами: T, C
SV, SS, R, FR с операндами: T
FR с операндами: C
Формальные операторы старта сброса и остановки таймеров
Все команды с диапазоном операндов BA, BB, BS, BT (данные ОС).
SPA, SPB с некоторыми операндами: OB
BA, BAB с операндами: FX
E, EX с операндами: DB, DX
STP, STS, STW
DEF, DED, DUF, DUD
SVW, SVD
SPO=, SPS=, SPR
AS, AF, AFS, AFF, BAS, BAF
ENT
SES, SEF
B с операндами: DW, MW, BS
LIR, TIR, LDI, TDI, TNW, TXB, TXW
MAS, MAB, MSA, MSB, MBA, MBS
MBR, ABR
LRW, LRD, TRW, TRD
TSG
LB, TB, LW, TW с операндами: GB, GW, GD, CB, CW, CD
ACR, TSC
BI

Приложение G: Сименс импорт.
CoDeSys V2.3 10-82
SIM, LIM
Если вы внимательно посмотрите на неконвертируемые команды, то обнаружите, что это допол- нительные команды, которые специфичны для некоторых CPU. Из основных команд не конверти- руются: BCD таймер или счетчик значений (LC T, LC C), таймер типов SV и SS и переустанавли- ваемый таймер.
Блоки данных:
Блоки данных STEP5 преобразуются в POU, имеющие объявления, но не содержащие кода.
Некоторые типовые проблемы импорта STEP5, требующие ручной правки:
1. Значения времени в переменных word
В STEP5 значения времени могут размещаться в любом слове памяти (word) или блока данных. В
МЭК 61131-3, переменные или константы TIME не совместимы с WORD адресацией. Отсутствие явного указания типа времени может приводить к ошибочным последовательностям команд при импорте. При обнаружении некорректного использования таких переменных вы увидите сообще- ние "Incompatible Types: Cannot convert WORD to TIME." либо "Incompatible Types: Cannot convert
TIME to WORD." В этом случае нужно изменить объявление переменной WORD в TIME.
2. Сложности с блоками данных
В МЭК 61131-3 отсутствуют блоки данных (DB) и нет прямого аналога этой концепции. В STEP5
DB применяются для размещения переменных (по словам, как в области памяти), допускают мас- сивы (B DW), указатели (B MW100 A DB 0) или объединения (доступ как к байту, слову или двойному слову). Конвертирование STEP5 DB проходит успешно, только если их применение упорядочено. При доступе к переменным блока данных, необходимо знать, какой блок сейчас от- крыт (команда A DB х, где х = номер блока). Это можно определить, если в начале POU стоит ко- манда A DB и номер блока передается в качестве параметра. Если же команда A DB отсутствует, то нет возможности определить, какой блок использовать и соответственно конвертировать такой
POU нельзя. Об этой проблеме вас оповестит сообщение "No open data block (insert an A DB)". При конвертировании будут получаться обращения к несуществующим переменным, например "ErrorDW0". Вы должны будете вручную поставить обращение к необходимому DB (заменить "ErrorDW0" на "DB10.DW0"). Конечно, проще заранее явно расставить в самих STEP5 POU необ- ходимые команды A DB.
В случае пропуска команды A BD существует опасность, что при преобразовании сформируется обращение к ошибочному DB.
3. Косвенное обращение к блокам данных
В STEP5 вы можете создавать подобие нескольких экземпляров блоков данных и косвенно (через индекс) выбирать нужный:
L KF +5
T MW 44
B MW 44
A DB 0
В конце этой последовательности будет открыт блок данных DB5 (в целом DB, номер которого записан по адресу %MW44). Такой прием не распознается при конвертировании. Поэтому ручная правка будет необходима в итоговом проекте:
Прежде всего все экземпляры DB должны быть импортированы (как DB5, DB6 и т.д) в стандарт- ные IL, LD или FBD (по вашему желанию) POU. Каждый такой POU не имеет кода и содержит только объявления. Создайте теперь новый тип данных (например DBType) и перенесите в него объявления данных из соответствующего конвертированного POU. Затем создайте соответст- вующие глобальные объявления:

Приложение G: Сименс импорт.
CoDeSys V2.3 10-83
VAR_GLOBAL
DB5, DB6 : DBType;
END_VAR
Теперь вы можете удалить ненужные более POU (бывшие DBs).
Доступ к нужному DB блоку теперь можно получить путем передачи программному компоненту дополнительного параметра VAR_INPUT типа DBType. Вы можете использовать один программ- ный компонент с разными блоками данных путем задания соответствующего актуального пара- метра при его вызове.
4. В S5 существуют встроенные функциональные блоки. Пользователю доступен только их ин- терфейс, программный код реализован не в STEP5 (или MC5) или защищен специальным меха- низмом. Результатом импорта таких блоков являются пустые POU, имеющие только объявление интерфейса. Программный код вам придется написать самостоятельно
5. Помимо этого, могут встретиться блоки (OB) реализованные в виде ассемблерных вставок
(805xx например). Преимущественно таким способом реализуется ПИД регулятор (OB251), ис- пользующий для приема параметров и хранения локальных переменных отдельный блок данных.
Естественно, код регулятора не попадет в импортированный проект. Для понимания работы таких блоков используйте документацию по данному процессору.
6. Конфигурационные блоки (такие, как DB1 [S5-95U], DX0, и DX2), применяемые иногда в S5
CPU, конвертируются в бессмысленные МЭК компоненты. Чтобы понять смысл их содержимого, используйте руководство по программированию данного CPU. В крайнем случае можно исследо- вать определенную данным блоком конфигурацию в системе программирования S5. Она включает настройку коммуникаций, обработку аналоговых значений, мультипроцессорную работу и т.д. Ес- тественно, все эти параметры имеют смысл только в Siemens SPS.
По окончании импортирования внимательно просмотрите полученный код. Не конвертированные автоматически фрагменты снабжены комментарием:
(*Warning! Unconvertible STEP5/7 code shown as comment:*)
Здесь же в комментарии содержится и исходный код.
Обязательно проверьте адреса. При импорте создаются исходные Siemens адреса, в формате:
Биты: Байтовое-Смещение.Номер-Бита
Не биты: Байтовое-Смещение
Два последовательных адреса слов могут пересекаться. Так %MW32 и %MW33 имеют общий байт
%MB33 (только в Siemens SPS). В CoDeSys %MW32 и %MW33 обычно не имеют пресечения.
Ваш ПЛК может иметь иерархическую модель адресации памяти, например "%MW10.0.0.Вы мо- жете сразу переделать все адреса либо попробовать оставить их как есть. Делать это нужно очень осторожно! В Siemens программах попеременное обращение к одной и той же области памяти - как слову, байту или биту - является обычной практикой. При импортировании блоков данных
CoDeSys создает WORD определения для соответствующих слов. Обращение к словам выполня- ется напрямую. В МЭК нет возможности объявить в общей памяти несколько пересекающихся пе- ременных разного типа. Но это возможно в прямоадресуемой (M) памяти и памяти входов- выходов. Если применяли адреса типа %MX33.3, %MB33, %MW32 или %MD30, их корректное преобразование нужно выполнить вручную.
Используйте список перекрестных ссылок, включающий входы, выходы и распределение памяти.
Проверьте пересекающиеся области и исключите их там, где их не должно быть.

Приложение H: Опции целевых систем
CoDeSys V2.3 10-84
Приложение H: Опции целевых систем
Системные опции целевых платформ (Target Platform)
Intel 386 совместимые
Пункт диалога
Пояснение
Платформа
(
Platform
)
Тип целевой платформы
Математический сопро-
цессор
(
Floating point
processor
)
если активна: разрешает применять FPU команды в операциях с плавающей запятой.
Многозадачная отладка
(
Debugging in multitasking
environment
)
если активна: генерируется дополнительный код, позволяющий проводить отладку в многозадачной среде.
Оптимизация переходов
(
Optimized jumps
)
если активна: разрешена оптимизация переходов в операциях сравнения; быстрый + компактный код (особенно на 386/486); Строки, содержащие сравнения перед переходом, будут отображаться серым в режиме контроля выполнения.
Оптимизация операций с
констанами
(
Optimized
operations with constants
)
(A = A + 1, A < 500 etc.); быстрый + компактный код (особенно на 386/486);
Константы будут отображаться серым в режиме контроля выполнения.
Оптимизация чтения
прменных
(
Optimized
Loadoperations
)
Исключаются повторные операции загрузки при множественном доступе к переменным/константам; быстрый + компактный код

Приложение H: Опции целевых систем
CoDeSys V2.3 10-85
Motorola 68K
Пункт диалога
Пояснение
Платформа
(
Platform
)
Тип целевой платформы.
Процессор
(
CPU
)
Вариант 68k CPU: базовый 68000 либо CPU32 и старше.
Математический сопро-
цессор
(
Floating point
processor
)
если активна: разрешает применять FPU команды в операциях с плавающей запятой.
Использовать 16 бит пе-
реходы
(
Use 16 bit jump
offsets
)
если активна: переходы при вычислении логических выражений используют относительные 16 бит смещения (более сложные выражения, но больше раз- мер кода). не активна: 8 бит смещения .
Побайтовое выравнива-
ние структур
(
Allow byte-
aligned structures
)
если активна: выравнивание только по четным адресам. не активна: произвольное расположение.
Не использовать рег. 1
(
Reserved Register 1
)
A2,A4,A5,A6: Указанные адресные регистры зарезервированы и не исполь- зуются
Иначе: регистр используется генератором кода
Не использовать рег. 2
(
Reserved Register 2
)
Дополнительный зарезервированный регистр адреса
Базовый рег. данных
библиотек
(
Base register
for library data
)
Регистр для адресации статических данных в C библиотеках (перед вызовом библиотечной функции, загружается адресом свободной памяти).
Если "None", используется A5.
Вывод
(
Output-Mode
)
Nothing = ничего
Assembler = генерируется файл "code68k.hex" в директории компиляции (См.
"Проект/Опции/Директории" - "Project/Options/Directories").
Disassembler = Дополнительно создает файл дизассемблера

Приложение H: Опции целевых систем
CoDeSys V2.3 10-86
Infineon C16x
Пункт диалога
Пояснение
Платформа
(
Platform
)
Тип целевой платформы
Код / Компилятор
(
Code /
Compiler
)
Компилятор, использованный для построения RTS и библиотек (определя- ет порядок вызова C функций)
Код / Размер стека
(
Code /
Stack size
)
Максимальная глубина вызовов (вложений)
Код / Данные
(
Code / Data
) Модель памяти данных
Код / Функции
(
Code /
Functions
)
Модель памяти кода
Иниц. функций
(
Init. Func-
tions
)
если активна: функции включают код инициализации локальных перемен- ных
Отимизация
(
Optimize
)
если активна: оптимизация кода, если индекс элемента массива константа
Вывод / Hex
(
Output / HEX-
File
)
если активна: формируется выходной HEX код
Вывод / BIN
(
Output / BIN-
File
)
если активна: формируется двоичный код
Вывод / MAP
(
Output /
MAP
)
если активна: формируется map-файл кода
Вывод / LST
(
Output / LST
)
если активна: формируется листинг кода
Вывод / LST с адресами
(
Output / LST with ad-
dresses
)
если активна: листинг включает адреса
DPPs /
DPP0..DPP2
В экземлярах (In Instances)
Выбор DPP для
DPP0, DPP1, DPP2
DPP для короткой адресации функциональных блоков

Приложение H: Опции целевых систем
CoDeSys V2.3 10-87
Библиотеки / Код
(
Libraries
/Code
)
Таблицы
(
Tables
)
Данные
(
Data
)
Размер
(
Data length
)
POUs
Ссылки
(
References
)
Опции для библиотек
ARM и Power PC
В обеих системах пункты диалога одинаковы.
Пункт диалога
Пояснение
Платформа
(
Platform
)
Тип целевой платформы
Математический сопро-
цессор
(
Floating point
processor
)
если активна: разрешает применять FPU команды в операциях с плавающей запятой
Рег. первого целового
параметра
(
First parame-
ter Register (integer)
)
Регистр, в котором передается первый целочисленный параметр при вызове
C-функции
Рег. последнего целого
параметра
(
Last parame-
ter Register (Integer)
)
Регистр, в котором передается последний целочисленный параметр при вызо- ве C-функции
Рег. целого результата
(
Register for return values
(Integer)
)
Регистр, в котором возвращается целочисленный результат C-функции
Рег. первого параметра
(плав. зап.)
(
First parame-
ter Register (Float)
)
Регистр, в котором передается первый параметр в формате с плавающей запя- той при вызове C-функции
Рег. посл. параметра
(плав. зап.)
(
Last parame-
ter Register (Float)
1   ...   39   40   41   42   43   44   45   46   ...   50


написать администратору сайта