CODESYS («кодесис») – комплексный инструмент для программирования промышленных контроллеров (ПЛК).
CODESYS v3 – это совершенно новая разработка. В основу CODESYS v3 положен модульный принцип, который позволяет дополнять систему посредством подключения дополнительных модулей.
Единожды изучив среду программирования, вы будете уметь программировать огромное количество контроллеров, основанных на CODESYS.
Особенности ПО для программирования и конфигурирования ПЛК CODESYS
В соответствии со стандартом МЭК 61131-3 CODESYS поддерживает 5 языков программирования:
Кроме этих языков CODESYS включает в себя еще один язык – CFC (Continuous Function Chart). Он похож на FBD, но позволяет располагать функциональные блоки свободно на экране и задавать порядок их выполнения.
Первая версия CODESYS увидела свет в 1994 году. С тех пор CODESYS обрел огромную популярность среди пользователей и производителей ПЛК. На данный момент сотни производителей выпускают тысячи моделей контроллеров на базе CODESYS.
CODESYS очень удобен для программиста.
Единожды изучив среду программирования, вы будете уметь программировать огромное количество контроллеров, основанных на CODESYS.
Описание ПО для программирования и конфигурирования ПЛК CODESYS
CODESYS – это не только среда программирования — это целый комплекс средств по работе с промышленным оборудованием. Он включает собственный OPC-сервер, графический редактор для создания визуализаций, менеджер рецептов, лог аварий и многое другое. На данный момент выпускаются контроллеры на базе двух версий CODESYS: версия 2 и версия 3.
CODESYS v2 поддерживается производителем только в режиме исправления ошибок. Новые функции в него уже не добавляются. Тем не менее, функционала CODESYS v2 достаточно для подавляющего большинства задач. К тому же он требует меньше ресурсов ПЛК и компьютера.
CODESYS v3 – это совершенно новая разработка. В основу CODESYS v3 положен модульный принцип, который позволяет дополнять систему посредством подключения дополнительных модулей.
Основные отличия СODESYS v3 от v2:
И это лишь немногие изменения, которые принесла третья версия CODESYS. Таким образом, CODESYS v3 аккумулировал в себе многие тенденции современной промышленной автоматизации и продолжает регулярно обновляться, обзаводясь всё новыми и новыми функциями.
О тенденциях в промышленных сетях
С тех пор, как в 1979 году появился протокол Modbus, он стал де-факто стандартом промышленной сети. Изначально он был спроектирован для использования с последовательными интерфейсами RS-232/RS-485. Позже практически без изменений он «перекочевал» в сети Ethernet в виде протокола Modbus TCP.
Всемирная популярность протокола Modbus обусловлена несколькими причинами:
При разработке протокол был рассчитан на потребности и вычислительные возможности оборудования того времени. Многие актуальные для сетей нынешнего времени вопросы учтены не были:
Стремление к развитию промышленных сетей привело в появлению в 2003 году стандарта EtherCAT.
Основой EtherCAT является технология Ethernet, что позволяет использовать все преимущества данной технологии.
Не так давно появился ПЛК компании KEB специально заточенный под такие задачи: COMBICONTROL C5 см. каталог KEB http://www.keb.de/kebneu/english/fs_doku_kat_e.htm
>на чем реализуются ЧПУ? на каких ПЛК или пром ПК? как то видел симатик С7 с качестве ЧПУ какого то станка,
В основном ЧПУ базируются на ПК, но для у дешевления комплектации станка, создания специальных функций и т.п, иногда делают на ПЛК. В России мне извеcтно про два таких решения для серийных станков, оба реализованы на контроллерах фирмы OMRON. В создании одного из них я поучаствовал . Так же знаю что одна швейцарская фирма выпускает токарные станки и одна американская (вроде бы фрезерные) с системой управления на базе ПЛК. С точки зрения удобства реализации в этом случае лучше использовать motion controllers или motion модули для контроллеров (буржуины так, кстати, и поступили). Но это немного увеличивает стоимость комплектации.
а по подробней можете рассказать про те два решения на омроне? или дать ссылочку почитать, или прислать что нибудь про них.
Я так понимаю, там где не надо в процессе делать кривых и объемных вырезок, там можно на ПЛК делать, а где надо там удобней на ПК, что бы загружать всякие там CAM и CAD.
а по подробней можете рассказать про те два решения на омроне? или дать ссылочку почитать, или прислать что нибудь про них.
И раз (описание кривовато, картинки экранов устарели год назад, но..):
И два (тут тоже не густо):
Это все что есть в нете если есть интерес, то можно по общаться по подробнее через личку.
Первоначально опубликовано gggg
Я так понимаю, там где не надо в процессе делать кривых и объемных вырезок, там можно на ПЛК делать, а где надо там удобней на ПК, что бы загружать всякие там CAM и CAD.
Если речь идет о точении четвертей окружности под шлифовку (с низкими требованиями по точности), то в принципе это можно реализовать и на PLC. Если нужно выточить шарнир (высокая точность), использовать кам таблицы, то это motion приблуды (см. выше).
По России есть несколько компаний, которые купили CoDeSys SoftMotion в комплекте с SP RTE в прошлом году. Мы сами делаем такую работу на базе пром. PC от ИКОС. Но насколько я знаю, пока еще никто не довел разработку до конца. Во всех случаях сложные много-осевые станки.
В Германии CoDeSys SoftMotion наиболее активно используют компании Robert Bosch GmbH, Berger Lahr, E.G.O и Asys.
Один пример монтажной станции Asys нормально описан тут (на Немецком языке). Есть даже фильм.
Хороший пример очень подробно описан в виде статьи тут (на Английском языке). Здесь применена биб-ка PLCopen и CAM. Компания Tevopharm (принадлежит Bosch), использованы CoDeSys SP RTE, HMI и CoDeSys SoftMotion.
но в начале беседы я ориентировался на ПЛК с лицензией софт мошион.
А если делать на пром ПК, то в принципе можно сделать на любой конфигурации ПК с нужным набором плат, нужно только приобрести CoDeSys SoftMotion в комплекте с SP RTE
1) 3S SoftMotion можно запустить на ПЛК которые: a) имеют 32х разрядный процессор с мат. сопроцессором, b) поддерживают многозадачность с вытеснением, c) оснащены системой исполнения CoDeSys SP (CSP32F). Такие ПЛК есть. Например, Kontron Think IO или Wago. На них SoftMotion идет. Сложности могут возникнуть только с подключением приводов. Конечно, они преодолимы.
2) Отдельный случай – это контроллеры Beckhoff. Они поддерживают CoDeSys и имеют свой компонент управления движением. Он появился раньше, чем SoftMotion у 3S независимо, поэтому он не так плотно интегрирован с CoDeSys. Но он достаточно хорошо проработан, есть поддержка всех необходимых модулей.
3) Третий отработанный вариант – это 3S SoftMotion на IPC. Обычно ставится SP RTE, привода подключаются по SERCOS. Можно по CANopen или даже по аналоговым выходам, но несколько сложнее.
SP RTE работает под Windows. Можно взять комплект CSP32F, он поставляется в исходных текстах и достаточно просто адаптируется под любую многозадачную ОС (Linux, QNX и др.).
Таймеры и триггеры CODESYS. Еще один шаг Arduino к классическому ПЛК
Случается программировать контроллеры (ПЛК) в среде CODESYS. Все, кто имел дело с этой системой, знают, что в любом проекте присутствует библиотека Standard.lib, в которой реализованы базовые таймеры, триггеры, счетчики и некоторое кол-во других функций и функциональных блоков. Многие из этих блоков постоянно используются в программах для ПЛК. А сама библиотека, как и языки программирования CODESYS, является воплощением стандарта IEC 61131-3, т.е. призвана помочь при программировании классических ПЛК задач.
Одна из особенностей программ для ПЛК в том, что основной цикл программы должен выполняться без существенных задержек, в нем не должно быть внутренних циклов с неопределенным временем выхода или синхронных вызовов «задумчивых» функций, особенно это касается коммуникаций по медленным каналам. Обновление входных и выходным образов процесса происходит только на границе основного цикла, и чем дольше мы будем «сидеть» внутри одной итерации цикла, тем меньше мы будет знать о реальном состоянии объекта управления, в конечном итоге сработает watchdog переполнения времени выполнения цикла. Многие могут мне возразить, сказав, что современные ПЛК многозначны, есть с поддержкой аппаратных прерываний. Согласен, но разговор о таких системах не входит в мои планы, я же хочу поговорить о (квази, псевдо — выбирайте) ПЛК однозадачной реализации (без прерываний) на базе микропроцессорной платформы Arduino, в котором есть только один основной цикл. Кстати, не лишним будет сказать, что на написание данной заметки меня сподвигла статья Ардуино-совместимый ПЛК CONTROLLINO, часть 1 о попытке аппаратного воплощения Arduino в пром. ПЛК.
Несколько слов об Arduino. С точки зрения программиста ПЛК, Arduino — это типичный контроллер с одним очень быстрым или, наоборот, очень медленным циклом loop(). На время выполнения цикла не накладывается никаких ограничений, и он может отработать и один, и бесконечное кол-во раз — по замыслу программиста. Когда программа проста и сводится к выполнению последовательных операций, регуляторов, без параллельных событий, то достаточно чередовать операции бесконечными вложенными циклами проверки условий и синхронными задержками типа delay(). Последовательные шаги такой программы будут выполняться буквально построчно, просто и логично. Но, как только возникает необходимость в программировании параллельных операций, необходимо менять парадигму программы.
В однозадачной системе добиться видимой параллельности можно только очень быстрым последовательным сканированием параллельных состояний, не задерживаясь подолгу на каждом вызове функции или проверке условия. С физическими входами-выходами проблем нет, функции отрабатывают достаточно быстро, а вот delay() становится неоправданным тормозом. И вот тут на смену приходят неблокирующие таймеры, те самые, которые в программировании ПЛК являются классикой. Суть в том, что для их работы используется миллисекундный счетчик времени, и все действия привязаны к значениям этого глобального счетчика.
А теперь давайте вспомним ту самую Standard.lib из CODESYS. В ней как раз реализованы МЭК-овские неблокирующие таймеры. Я взял ее за основу и портировал функции таймеров и триггеров в библиотечный код Arduino (С++). Т.е. попытался приблизить Arduino к классическому ПЛК.
Ниже я приведу краткое описание портированных функциональных блоков (FB) CODESYS и их аналоги в моей библиотеке plcStandardLib, все временные диаграммы верны для новой библиотеки Arduino. Подробнее описание исходных блоков можно посмотреть, например, в русскоязычной справке по CODESYS.
TON — функциональный блок «таймер с задержкой включения»
Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME. Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. Как только IN становится TRUE, начинается отсчет времени (в миллисекундах) на выходе ET до значения, равного PT. Далее счетчик не увеличивается. Q равен TRUE, когда IN равен TRUE, а ET равен PT, иначе FALSE. Таким образом, выход Q устанавливается с задержкой PT от фронта входа IN.
В Arduino IDE:
Временная диаграмма работы TON:
TOF — функциональный блок «таймер с задержкой выключения»
Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME. Если IN равен TRUE, то выход Q = TRUE и выход ET = 0. Как только IN переходит в FALSE, начинается отсчет времени (в миллисекундах) на выходе ET. При достижении заданной длительности отсчет останавливается. Выход Q равен FALSE, если IN равен FALSE и ET равен PT, иначе — TRUE. Таким образом, выход Q сбрасывается с задержкой PT от спада входа IN.
В Arduino IDE:
Очень похоже на TON, для краткости:
Временная диаграмма работы TOF:
TP — функциональный блок «импульс-таймер»
Входы IN и PT типов BOOL и TIME соответственно. Выходы Q и ET аналогично типов BOOL и TIME. Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. При переходе IN в TRUE выход Q устанавливается в TRUE и таймер начинает отсчет времени (в миллисекундах) на выходе ET до достижения длительности, заданной PT. Далее счетчик не увеличивается. Таким образом, выход Q генерирует импульс длительностью PT по фронту входа IN.
В Arduino IDE:
Очень похоже на TON, для краткости:
Временная диаграмма работы TP:
R_TRIG — функциональный блок «дeтектор фронта»
Функциональный блок R_TRIG генерирует импульс по переднему фронту входного сигнала. Выход Q равен FALSE до тех пор, пока вход CLK равен FALSE. Как только CLK получает значение TRUE, Q устанавливается в TRUE. При следующем вызове функционального блока выход сбрасывается в FALSE. Таким образом, блок выдает единичный импульс при каждом переходе CLK из FALSE в TRUE.
Пример CODEDESYS на языке ST:
В Arduino IDE:
F_TRIG — функциональный блок «дeтектор спада»
Функциональный блок F_TRIG генерирует импульс по заднему фронту входного сигнала. Выход Q равен FALSE до тех пор, пока вход CLK равен TRUE. Как только CLK получает значение FALSE, Q устанавливается в TRUE. При следующем вызове функционального блока выход сбрасывается в FALSE. Таким образом, блок выдает единичный импульс при каждом переходе CLK из TRUE в FALSE.
В Arduino IDE:
RS_TRIG — функциональный блок RS-триггер / SR_TRIG — функциональный блок SR-триггер
Переключатель с доминантой выключения, RS-триггер:
Переключатель с доминантой включения:
Входные переменные SET и RESET1 — как и выходная переменная Q1 типа BOOL.
CODESYS SoftMotion is an additional option for CODESYS compatible SoftPLC systems. CODESYS SoftMotion extends the functional scope of these systems from a purely logical controller to a motion controller, optionally also with CNC and robotics support.
Product Description
Licensing:
Single Device License
CODESYS SoftMotion enables the control of single-axis and synchronized multi-axis movements (electronic cams, electronic gears).
CODESYS SoftMotion CNC+Robotics enables the control of CNC machines and industrial robots.
CODESYS SoftMotion Light allows to command CiA 402 compatible drives for single axis movements (not synchronized).
Project engineering of motion using function library modules
Configuration of drives with fieldbus support integrated in the CODESYS Development System
Parameterization of axis groups for predefined kinematics in a separate object
Decoupling of application creation from the applied hardware by abstracting the drives with drive group names in the device tree
Motion planning with cam editor
with 3D CNC editor according to DIN 66025 (G code) and tabular editor
with coordinate values for robot positions in different coordinate systems
Processing of CNC motion, robotic motion, or other motion tasks in the runtime system on the controller with the IEC 61131-3 logic application
Online editing of CNC programs in CODESYS Visualization
Typical applications of CODESYS SoftMotion:
As an additional option for powerful, CODESYS compatible control systems with good real-time behavior (FPU recommended)
Actuation of single-axis and multi-axis movements, for example with position and velocity definitions, drive functions, or phase actuation
Implementation of electronic cams
CNC motion with modifications by the end user (for example, in metal and woodworking machines)
Robotic systems including SCARA, tripod, and palletizing robots such as in assembly and loading automation
A note on SoftMotion Light: In contrast to SoftMotion and SoftMotion CNC+Robotics, the calculation of the axis movements is not done within the controller. With SoftMotion Light movements of the drive are just commanded and supervised (status) by the PLC and executed by the drive. The trajectory calculation is done in the drive.
SoftMotion Light is suitable for applications with multiple axes for single axes movements and for controller tasks requiring a low bus and computing load (CPU).
Requirements
Programming System
CODESYS Development System V3.5.11.0 or higher
Runtime System
CODESYS Control Version 3.5.5.0 or higher
Supported Platforms/ Devices
Real-time capable operating system platforms
CPU platforms with available FPU (Floating Point Unit)
Devices with integrated fieldbus (EtherCAT, CAN/CANopen, or Sercos)
Additional Requirements
WIBU Codemeter Support
SoftMotion CNC+Robotics requires CODESYS SoftMotion as a basis license.
SoftMotion Light works with CiA 402 compatible drives with CANopen or EtherCAT. Compatibility can be checked with the test project SML_CompatibilityCheck_DS402.project
Restrictions
Licensing
Single Device License: The license can be used on the target device/PLC on which the CODESYS Runtime System is installed.
Licenses are activated on a software-based license container (soft container), which is permanently connected to the controller. Alternatively the license can be stored on a CODESYS Key (USB-Dongle). By replugging the CODESYS Key, the license can be used on any other controller
Required Accessories
Optional: CODESYS Key
Support
CODESYS GmbH
A member of the CODESYS Group
Memminger Straße 151 D-87439 Kempten Germany
This product includes a support authorization for use within one year after purchase.
To submit your support request, please use our contact form and include your order number and a short description of the issue.
For pre-sales inquiries, please use the contact form as well.
Supplier
CODESYS GmbH
A member of the CODESYS Group
Memminger Straße 151 D-87439 Kempten Germany
Additional Downloads
Versions
Version History
Version
Release Notes
Release Date
4.10.0.0
Release Note
CODESYS SoftMotion 4.10.0.0 improves the robotics jogging function blocks and contains bug fixes.
New Features and Improvements
[SM-2805] Robotics: Improve jogging
[SM-2779] SMC_GroupJog/ SMC_GroupJog2: Make it possible to jog around the X/Y/Z axis in TCS
[SM-2892] SMC_GroupJog2: Improve accuracy of reported error messages
[SM-2876] Robotics: SMC_GroupInterruptAt
[SM-2893] Robotics: SMC_GroupInterruptAt: New FB and visu template
[SM-2894] Robotics: SMC_GroupInterruptAt: Extend the CP planner to notify the fineinterpolator about the interrupt position in the sample queue
[SM-2895] Robotics: SMC_GroupInterruptAt: Implementation in CP planner
[SM-2899] CP, Planner: Improve debug and diagnosis functions
[SM-2909] DeviceEditorSoftMotion: add interface that allows third party EtherCAT configurators to provide the PDO mapping for slaves
Major Bug-Fixes
[SM-2472] SM3_Drive_CAN_Infranor and SM3_Drive_ETC_Infranor: SetPosition increases on Hardware Limit
[SM-2737] SMC_GroupJog2: Orientation mode Axis and ABC_as_ACS do not work in cartesian coordinate systems other than MCS
[SM-2907] “Enable SoftMotion” hides other connectors in PLC device
Minor Bug-Fixes
[SM-253] SM3_Drive_CAN_Schneider_Lexium32: FB ReInitDrive does not work when MC_ReadAxisError is busy
[SM-2369] SM3_ETC_ITF: Startup SDOs not correctly added to list
[SM-2771] SMC_GroupJog2: Jogging in TCS is erroneous
[SM-2772] SM3_Robotics_Visu: ComboBox entries not selectable + improvements for jogging
[SM-2777] SMC_GroupJog: Jogging in TCS with ABC_as_ACS does not work
[SM-2799] SMC_GroupJog2: Cartesian coordinate system and ABC_as_ACS = FALSE: orientation axes may rotate in unexpected direction
[SM-2802] SMC_GroupJog2: “AutomaticRotaryPeriods” are not considered
[SM-2834] CP-Tracking: axis limit violation with composite blending for orientation elements
[SM-2852] Part 1 function blocks: Done, Error and CommandAborted output is not immediately reset on Execute = FALSE
[SM-2860] SMC_GroupJog2: maxAngularDistance 360 deg behaves like 0 deg, 359 deg and 361 deg behave unexpectedly
[SM-2870] CP: planner may not accept any movements in case of m_ErrorIDNewMovement <> SMC_NO_ERROR
[SM-2875] CNC: SMC_NCTokenizer: tokenizer does not react correctly to stream.EOS
[SM-2882] SMC_GroupJog2: jogging X/Y/Z in TCS results in error SMC_CP_CONFIGS_DIFFER frequently
[SM-2897] Robotics: wrong check of axis limits for orientation mode axis and jogging with ABC_as_ACS = TRUE
[SM-2905] Possible null-reference exception in FindParentETC_Slave FindParentETC_Slave
[SM-2906] SMC_DSP402_ConvertReceivedParameter: status word of previous cycle is used
[SM-2926] Possible assertion when resuming with MC_GroupContinue after MC_GroupStop
[SM-2927] MC_GroupContinue during active MC_GroupStop results in AXIS_LIMIT_VIOLATION
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP11 and newer. However we recommend the newest patch level of CODESYS V3.5 SP16.
[SM-2852] Part 1 function blocks: Done, Error and CommandAborted output is not immediately reset on Execute = FALSE
We fixed an accident introduced in version 4.7.0.0 with SM-2086 for our single axis and master/slave motion function blocks such as MC_MoveAbsolute. On a falling edge of the Execute input, the outputs Done, Error, and CommandAborted would stay TRUE for one more cycle. With this fix, we restored the correct behavior. Now the Done, Error, and CommandAborted outputs are reset immediately with the falling edge of Execute. This is the behavior of versions prior to 4.7.0.0.
[SM-2854] Improve jogging of orientation
Jogging of the orientation with the function blocks SMC_GroupJog and SMC_GroupJog2 has been improved. The behavior has changed only for the case that the input ABC_as_ACS is FALSE.
Previously, the ZYZ euler angles were jogged, leading to unpredictable and unintuitive reorientation movements. The improved behavior is as follows: A will rotate the TCP around the X-axis of the configured coordinate system (MCS, WCS, PCS, or TCS). B and C will rotate the TCP around the Y- and Z-axis of that same coordinate system.
The input SMC_GroupJog2.OrientationMode has been deprecated and will be removed in a future version. Please adapt your code accordingly. If ABC_as_ACS is TRUE, then internally the orientation mode “Axis” is used. Otherwise, orientation mode “GreatCircle” is used.
[SM-2885] SMC_GroupJog2: Negative MaxLinear/AngularDistance reverses the jogging direction
The function block SMC_GroupJog2 now creates the error SMC_GROUPJOG2_MAX_DISTANCE_NON_POSITIVE if either (or both) of the inputs MaxLinearDistance and MaxAngularDistance is non-positive.
Known Limitations
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.
[SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
The slave is a multi axis slave, and
the slave uses modules, and
the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
the CODESYS version is below 3.5.15.0.
Information from JIRA
To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.
List of features and changes:
project = “CODESYS SoftMotion” AND fixVersion = 4.10.0.0
List of issues with compatibility information:
project = “CODESYS SoftMotion” AND fixVersion = 4.10.0.0 AND (text
COMPATIBILITY_INFORMATION OR text
Release Note
CODESYS SoftMotion 4.9.0.0 brings important bug fixes and improvements.
Improvements
[SM-2712] Make SoftMotion work on PLCs with all target types, not only the SoftMotion target type 16#1006
[SM-2619] Kin_Wrist2: allow an offset in x, y and z between first axis of rotation (A) and second axis of rotation (B)
[SM-2610] Kin_Wrist2: allow tool offsets in X/Y with SMC_GroupSetTool if flange of position kinematics is constant
[SM-2617] Kin_ArticulatedRobot_6DOF: extend kinematics to support axis offsets
[SM-2711] Make it possible to filter log messages of SoftMotion by logger class
Major bug-fixes
[SM-2781] SM3_Drive_ETC: SDO read and write FBs don’t receive falling edge on xExecute after xDone/xError. This can lead to axes not working if many EtherCAT drives are used and many SDO requests are issued. (E.g. an application with 50 drives where the mode of operation and mode of operation display objects are not mapped by PDO.)
[SM-2710] SMC_ToolRadiusCorr computes wrong path if lines are orthogonal
[SM-2704] CPTR: Assertion Failure in GetPose of Kernel_CPTR
[SM-2671] MC_TrackConveyorBelt does not support logical axes
[SM-2670] Wrong Velocity calculation in driver for Delta ASDA A3 and B3
20 minor bugs have been fixed.
Supported drives
[SM-2826] Support for Bosch Rexroth Indradrive (EtherCAT, CoE)
[SM-2675, SM-2679] Delta IO – R1-EC5621: touch probe support, set the correct input pulse mode on the drive startup
[SM-143] Schneider Lexium32 CAN+EtherCAT: update to new device description and firmware (V01.28.03)
[SM-2782] Infranor PAC, CMZ LBD: Log messages about capture channels should be DEBUG, not INFO
[SM-2778] Schneider Lexium 28: Bugfix: no reset possible after homing is interrupted by a limit switch
[SM-2722] Parker Compax3: Log messages about startup SDOs and firmware info should be DEBUG, not INFO
[SM-2651] Parker PSD: Update to new device description
[SM-2167] Panasonic A6B: Update to new ESI file and integrate the drive
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP11 and newer. However we recommend the newest patch level of CODESYS V3.5 SP16.
[SM-2712] Make SoftMotion work on PLCs with all target types, not only the SoftMotion target type 16#1006. SoftMotion can now be used on standard PLCs. This means that SoftMotion objects such as Cam tables, CNC programs, and axis groups can be added to standard PLCs. For a standard PLC, SoftMotion is initially not enabled. It can be enabled using a new command “Enable SoftMotion” or by adding a SoftMotion object or drive. Once it is enabled, the SoftMotion libraries will be added to the library manager automatically, just like for a SoftMotion PLC. A “General Axis Pool” for virtual axes, free encoders and position controllers will be inserted below the PLC device. Note that an update from an existing SoftMotion PLC to a standard PLC is now possible without losing the “General Axis Pool” and the axes configured there. During the update, SoftMotion will be enabled for the standard PLC and the “General Axis Pool” will be preserved.
[SM-2819] Issuing a CP movement when the axis group is following the PCS and no movement is active results in error. As long as an axis group follows a dynamic coordinate system, the group state will remain “GroupMoving”. This is in contrast to previous versions, where the axis group would switch to state “GroupStandby” if it was in standstill relative to the moving coordinate system.
[SM-2817] SMC_GroupEnableResumeAfterError: there should be an Active output signaling that continue data is being written. If a falling edge of the input SMC_GroupEnableResumeAfterError.Enable is commanded while the continue data is being written (output Active = TRUE), then the continue data will not be valid. A falling edge of Enable can only be safely commanded once the output Active changes to FALSE. This happens once the continue data has been completely written.
Known Limitations
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.
[SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
The slave is a multi axis slave, and
the slave uses modules, and
the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
the CODESYS version is below 3.5.15.0.
Information from JIRA
To read up on implemented features and changes you can use your JIRA account. Please find some example filters below.
List of features and changes:
project = “CODESYS SoftMotion” AND fixVersion = 4.9.0.0
List of issues with compatibility information:
project = “CODESYS SoftMotion” AND fixVersion = 4.9.0.0 AND (text
COMPATIBILITY_INFORMATION OR text
Release Note
CODESYS SoftMotion 4.8.0.0 brings important bug fixes and support for more drives.
Major bug-fixes
[SM-2501] Kin_Tripod_Rotary, SMC_TRAFO_Tripod_Arm, and SMC_TRAFOF_Tripod_Arm: MCS not documented properly
[SM-2584] CP, Halt/Stop: Vel, Acc and JerkFactor are applied twice
[SM-2605] MC_Moverelative that finishes in one cycle may output wrong target position
[SM-2615] MC_Home: possibly wrong fSetPosition after homing if a 32-bit overflow has occurred
[SM-2618] SMC_GroupJog2: Algorithm for finding the working space limits does not work correctly
[SM-2631] SMC3_CiA_DSP402_StateMachine: State machine may get stuck if SET_OPMODE times out
12 minor Bugs have been fixed.
Supported drives
[SM-2417] New driver for Beckhoff EL7041 and EL7047
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP11 and newer. However we recommend the newest patch level of CODESYS V3.5 SP16.
The use of the operator __CHECKLICENSEBIT() (necessary for SM-2571) made it necessary to require at least version 3.5.11.0 of CODESYS. As a consequence, the minimum supported CODESYS version has been increased from 3.5.9.50 to 3.5.11.0.
Known Limitations
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.
[SM-1901] ETC Drives using modular slaves not working with CODESYS SP13 and SP14 if SlotIndexIncrement is not 0. The mapping of drive objects in the Scaling/Mapping page of SoftMotion drives is computed incorrectly for some EtherCAT slaves and CODESYS versions. This happens if (and only if) all of the following conditions are met:
The slave is a multi axis slave, and
the slave uses modules, and
the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
the CODESYS version is below 3.5.15.0.
Not released / Not tested
Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released
10.08.2020
Version
Release Notes
Release date
4.7.0.0
Release Note
CODESYS SoftMotion 4.7.0.0 brings buffer modes to the single axis and master slave function blocks. Additionally, many bugs have been fixed.
New Features
[SM-2068] BufferMode for Part 1 function blocks
[SM-2333] Robotics: new polar kinematics with z-axis
Major bug-fixes
Only bugs not patched in version 4.6.2.0 or 4.6.3.0 are listed.
[SM-2364] Exception when fEditorSlaveMin is set for “0” (CAM_TABLE_INVALID_SLAVE_MINMAX)
[SM-2457] CPTR: Assertion in SMC_MotionKernel_CPTR.GetPose after MC_GroupInterrupt
[SM-2513] MC_CamIn: Potential AccessViolation if more than three tappets are used in parallel
[SM-2515] MC_MoveSuperimposed: jump in axis position if the underlying movement changes the owner and the aborting FB is called before MC_MoveSuperimposed
[SM-2521] SML_Drive_ETC: readSDO/writeSDO function block needs to be called with xExecute=FALSE after successful completion
[SM-2524] CNC: Interpreter stack overflow if subprogram uses local variables
[SM-2530] SMC_MoveContinuousAbsolute/Relative may reach end velocity at wrong position (ramp type trapez, acceleration <> deceleration)
[SM-2531] MC_MoveAbsolute / MC_MoveRelative + MC_MoveSuperimposed: possible jump in set position if superimposed movement finished one cycle before underlying movement
33 minor Bugs have been fixed.
Supported drives
[SM-2234] New driver for Delta ASDA A3 / B3 drive
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.
SMC_CAM_TABLE_INVALID_MASTER_MINMAX, if in the passed CamTable fEditorMasterMax
[SM-2422] Compatibility: changes in project if the SM package is increased to 4.6.1.0. Logging in to an application downloaded with SoftMotion 4.6.1.0 installed may require an online change when logging in with SoftMotion 4.7.0.0.
Known Limitations
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.
The slave is a multi axis slave, and
the slave uses modules, and
the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
the CODESYS version is below 3.5.15.0.
Not released / Not tested
Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.
Release Note
CODESYS SoftMotion 4.6.3.0 is a bug-fix release. It fixes a major bug in the SMC_GroupJog2 function block.
[SM-2480] SMC_GroupJog2: Jogging with ABC_as_ACS does not work correctly
[SM-2479] SMC_GroupJog2: possible error “SMC_CP_INVALID_PATH_ELEM” if orientation mode Axis is used
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.
Known Limitations
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.
The slave is a multi axis slave, and
the slave uses modules, and
the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
the CODESYS version is below 3.5.15.0.
Not released / Not tested
Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.
Release Note
CODESYS SoftMotion 4.6.2.0 is a bug-fix release.
[SM-2429] Compatibility: changes in project if the SM package is increased to 4.6.1.0
[SM-2430] Axis limit violation on Pick&Place without stop
[SM-2431] Problems with CartBlending elements with vanishing axis derivatives: performance degradation and numerical difficulties
[SM-2438] MC_GroupInterrupt, CP: Interrupt might not finish if commanded just before the end of a segment
[SM-2440] Possible error SMC_CP_INTERNAL_EVAL_CACHE_ERROR on override
[SM-2442] Acceleration Limit violation during blending (U-Pick)
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.
[SM-2429] Compatibility: changes in project if the SM package is increased to 4.6.1.0. Logging into an application downloaded with SoftMotion 4.6.1.0 installed may require an online change when logging in with SoftMotion 4.6.2.0.
Known Limitations
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.
The slave is a multi axis slave, and
the slave uses modules, and
the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
the CODESYS version is below 3.5.15.0.
Not released / Not tested
Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.
Release Note
CODESYS SoftMotion 4.6.1.0 is a feature and bug-fix release.
Major bug-fixes
[SM-2015] Project environment: Update of SoftMotion profile without installed device description leads to missing SoftMotion libraries
[SM-2260] CP, Resume after error: Null reference exception if resume after error is enabled and an error occurs before any movement was planned
[SM-2288] AXIS_REF_SM3: Axis generates an error when setting no control mode while moving
[SM-2315] Parker PSD: Change the device IDs to fit the previous versions
[SM-2340] CNC: The H points are lost for G Codes of Length 0 and if the End Velocity of the previous GCode is 0
[SM-2350, SM-2355] Check of Axis Limits fails when a PTP_PI aborts a PTP_FAST mvt and if the IpoState is end_of_path and fIpoTime is 0
36 minor bugs have been fixed.
New Features
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits
[SM-1304] Robotics: Support for 6D tools
[SM-2247] Robotics: make it possible to resume after MC_GroupHalt/MC_GroupStop
[SM-2152] Improve CP-Tracking for Pick&Place applications step 1
Improvements
[SM-2183] AXIS_REF_MAPPING_SM3: new setting to enable writing of outputs in application stop
[SM-2215] SM3_Drive_ETC_KEB_H6: make it possible to immediately disable from state quick stop, even if _bImmediateDisabling is FALSE
[SM-2233] SM3_Drive_ETC_KEB_H6: consider voltage enabled, ignore operation enabled
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.
Issues from version 4.6.1.0
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupStop/MC_GroupHalt now require the commanded dynamics to be valid. This means that the values of the inputs Deceleration and Jerk have to be positive and the values of the inputs AccFactor and JerkFactor have to be in the range ]0, 1]. An invalid value on any of these inputs leads to an error stop. If you update an application to this SoftMotion version, please make sure that all calls to MC_GroupStop/MC_GroupHalt in your application have valid inputs.
Issues from version 4.6.0.0
[SM-2067] Infranor Xtrapuls: it is not possible to access the high 16 bit of the digital inputs and digital outputs Infranor Xtrapuls: The member variables wDigitalInputs and wDigitalOutputs of the SoftMotion axes are now of type DWORD instead of WORD. Updating these devices in existing projects can lead to new compile errors, if wDigitalInputs or wDigitalOutputs were assigned to WORD variables.
[SM-2080] U-Pick: improve smoothness to reach more picks per minute: Blending between path elements has been improved to enable faster and smoother pick&place operation. In particular, consecutive lines are now blended even if their direction is exactly opposite to each other (e.g. the down-movement followed by the up-movement of a typical pick&place cycle). To restore the behavior of SoftMotion versions before 4.6.0.0, set the flag bCPCompositeBlending of the structure SMC_AXIS_GROUP_COMPATIBILITY_OPTIONS to FALSE (input of MC_GroupEnable). Note: this change only affects non-tracking movements.
[SM-2191] Robotics: change default planning interval to 16 ms: The default for the robotics planning interval has been changed to 16 ms. The planning interval is an internal parameter of the robotics trajectory planner. The value determines the accuracy of the trajectory and the performance requirements of the planning algorithm. (Larger planning intervals lead to reduced performance requirements.) In earlier versions of CODESYS SoftMotion, the default for the planning interval was twice the bus task interval, but at least 4 ms. The planning interval can be changed using SMC_TuneCPKernel.
Known Limitations
[SM-2314] MC_GroupStop/MC_GroupHalt, CP: immediate braking with given dynamic limits. MC_GroupHalt of CP movements cannot be aborted. A subsequent movement is always treated as buffered.
The slave is a multi axis slave, and
the slave uses modules, and
the attribute SlotIndexIncrement (in the ESI file) of the axis modules is not 0, and
the CODESYS version is below 3.5.15.0.
Not released / Not tested
Device Application Support. The usage of axis groups in child applications is not supported. See SM-847. Not released.
Release Note
CODESYS SoftMotion 4.6.0.0 is a feature and bug-fix release.
Major bug-fixes
24 minor bugs have been fixed.
Improvements
Supported drives
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP15. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.
Issues from version 4.6.0.0
Known Limitations
Not released / Not tested
Release Note
CODESYS SoftMotion 4.5.1.0 is a patch release.
Major bug-fixes
19 minor bugs have been fixed.
Improvements
New supported drive
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP14. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.
Issues from version 4.5.0.0
Known Limitations
Not released / Not tested
Release Note
Compatibility Information
General
This version is compatible with CODESYS V3.5 SP9 Patch 5 and newer. However we recommend the newest patch level of CODESYS V3.5 SP14. Using axis groups in simulation-mode requires compiler version 3.5.10.40 or later.
Issues from version 4.5.0.0
Known Limitations
Not released / Not tested
CODESYS SoftMotion 4.5.0.0 is a quality and bug-fix release. Test coverage has been substantially extended and many problems have been fixed.
Improved blending
Other improvements
New supported drive
Support for Yaskawa Sigma 7 series.
Major bug-fixes
46 minor bugs have been fixed.
CODESYS SoftMotion 4.4.0.2 is a hotfix release.
It fixes the accident SM-1825, introduced in CODESYS SoftMotion 4.4.0.0, which may cause problems during installation of the SoftMotion package.
CODESYS SoftMotion 4.4.0.1 is a hotfix release.
It fixes the accident SM-1814, introduced in CODESYS SoftMotion 4.4.0.0, which may cause problems during startup or acyclic communication of EtherCAT drives.
We recommend to update from CODESYS SoftMotion 4.4.0.0 to CODESYS SoftMotion 4.4.0.1.
CODESYS SoftMotion 4.4.0.0 is a feature and bug-fix release.
56 minor bugs have been fixed.
We recommend to update from CODESYS SoftMotion 4.3.2.0 (or earlier) to CODESYS SoftMotion 4.4.0.0.