Category Archives: CoDeSys. Теория.

Менеджер рецептов (Watch and Receipt Manager)

Менеджер контроля и заказа значений переменных или коротко «Менеджер рецептов» позволяет просматривать значения заданного списка переменных, заранее определять наборы констант для переменных данного списка и моментально присваивать их одной командой записи: «Write Receipt». Кроме того, образ текущих значений переменных контроллера можно считать и сохранить (команда «Read Receipt«). Эта функция полезна, например, для быстрого восстановления определенного состояния системы.

Для работы с Watch and Receipt Manager откройте соответствующее окно на вкладке Resource организатора объектов. Перечень доступных списков переменных находится в левой части окна. Списки можно выбирать с помощью мышки или клавишами управления курсором. В правой части окна показывается состав выбранного списка.

Менеджер рецептов в режиме Offline

В режиме Offline можно создать несколько именованных списков переменных, используя команду «Insert» «New Watch List». Сами переменные вводятся с помощью Ассистента ввода или с клавиатуры согласно следующему правилу:

<POUName>.<Variable Name> [:= <Const>]

Для глобальной переменной часть POU Name (имя программного компонента) не нужна. Ввод глобальной переменной начинается с точки. Имя переменной может быть многоуровневым. Можно использовать прямые адреса.

Пример многоуровневой переменной:

PLC_PRG.Instance1.Instance2.Structure.Componentname

Пример глобальной переменной: .global1.component1

Менеджер рецептов в режиме Offline

 

Для присвоения константы переменной используется стандартный оператор присваивания : =. В режиме online заданные значения констант можно будет записать в контроллер командой ‘Write Receipt’.

Пример:

PLC_PRG.TIMER:= 50

В примере переменная PLC_PRG.TIMER получает значение 50.

По команде «Extras» «Write Receipt» заданные константы будут переданы в PLC.

Относительно массивов и структур: Вы должны ввести имена отдельных элементов для последующего доступа к ним. Например: вы определили структуру с элементами a, b, c объявили переменную struvar данного типа в PLC_PRG.

Предварительное помещение в список элементов a,b,c вместе со значениями выполняется так:

PLC_PRG.struvar.a:=<value>

PLC_PRG.struvar.b:=<value>

PLC_PRG.struvar.c:=<value>

Предварительное помещение в список элементов массива выполняется аналогично. Например, для массива переменных типа ARRAY[0…6]:

PLC_PRG.arr_var[0]:=<value>

PLC_PRG.arr_var[1]:=<value>

Для функционального блока fb, содержащего переменные x,y и имеющего экземпляр fb_inst, объявленный в PLC_PRG, введите следующие строки:

PLC_PRG.fb_inst.x:=<value>

PLC_PRG.fb_inst.y:=<value>

«Insert»»NewWatch List»

Создать новый список переменных, имя которого нужно будет ввести в отдельном диалоговом окне.

«Extras» «Rename Watch List»

Изменить имя выбранного списка переменных.

«Extras» «Save Watch List»

Сохранить выбранный список переменных в файле с расширением «*.wtc».

«Extras» «Load Watch List»

Загружает список переменных, сохраненный командой «SaveWatch List».

Менеджер рецептов в режиме Online

В режиме Online значения выбранного списка переменных отображаются на экране.

Переменные структурного типа (массивы, структуры, экземпляры функциональных блоков) помечаются значком «плюс» перед именем переменной. Открывается такая переменная двойным щелчком мыши или клавишей <Enter>. Для просмотра значений переменных экземпляров функциональных блоков используйте команды контекстного меню ‘Zoom’ и ‘Open instance’.

Для добавления новых переменных надо отключить режим отображения командой «Extra» «Active Monitoring». Сделайте необходимые изменения и включите отображение этой же командой.

Менеджер рецептов в режиме Online

В режиме Online значения определенных заранее в списке констант записываются в контроллер командой «Extras» «Write Receipt».

Команда «Extras» «Read Receipt» заменяет константы текущими значениями переменных.

«Extras» «Monitoring Active»

В режиме Online эта команда включает или выключает окно показа значений переменных. Если выбран режим показа значений переменных, то команда отмечена галочкой.

Для ввода новых переменных или задания констант (см. режим Offline) режим должен быть выключен с помощью этой команды.

«Extras» «Write Receipt»

С помощью этой команды заданные константы загружаются в контроллер.

«Extras» «Read Receipt»

С помощью этой команды в режиме Online константы, определенные в режиме Offline, заменяются на текущие значения переменных.

Фиксация переменных

В окне Watch and Receipt Manager вы можете изменять значения переменных, как и при мониторинге программ. Запись значений в ПЛК и фиксация значений выполняются обычными командами «Write values» и «Force values». Фиксированные значения отображаются красным цветом.

 

 

    Установка дополнительных библиотек для проекта CoDeSys

    В CoDeSys все файлы библиотек дополнительных программных компонентов имеют расширения  *.lib (Library) и находятся в папке Library. Она расположена по месту размещения основной программы на диске компьютера (по умолчанию – C:Program Files3S SoftwareCoDeSys V2.3Library).

    По умолчанию подключен (доступен) стандартный набор библиотек. Дополнительные библиотеки добавляются пользователем по мере необходимости в папку к уже имеющимся библиотекам. Для подключения новых библиотек к проекту соответствующие файлы переписываются пользователем в ту же папку, где находятся все используемые библиотеки.

    Чтобы увидеть, какие библиотеки уже подключены к проекту, и подключить дополнительные библиотеки, используется «Менеджер библиотек (Library Manager)», – его можно открыть из главного меню CoDeSys командами «Окно (Window)4Менеджер библиотек (Library Manager)» или выбором на вкладке организатора объектов «Ресурсы (Resources)» режима работы «Менеджер библиотек (Library Manager)», см. рисунок 1.1. В средней верхней части появившегося окна отображается список установленных библиотек.

    Рисунок 1.1 – Окно вкладки организатора объектов «Ресурсы (Resources)» с режимом работы «Менеджер библиотек (Library Manager)»

    Установка дополнительных библиотек выполняется из главного меню последовательным выбором команд: Вставка (Insert) 4 Добавить библиотеку (Additional Library) 4 в открывшемся окне папки Library (рисунок 1.2) выделяется файл c именем нужной библиотеки (например, sound.lib) и дается команда Открыть.

    Рисунок 1.2 – Окно выбора подключаемой к проекту дополнительной библиотеки

    Теперь в перечне библиотек, доступных в проекте, появится вновь установленная библиотека.

    Для просмотра состава и свойств программных компонентов курсором выбирается нужная библиотека, – при этом появится папка с программными компонентами, в которой выделяется конкретный программный компонент (на рисунке 1.1 справа дана краткая справочная информация по его использованию).

    Примечания.

    1.  Рекомендуется размещать все библиотеки, которые планируется подключать, в папке для хранения библиотек, создаваемой CoDeSys автоматически.

    2.  Для каждого нового проекта добавление новых библиотек проводится индивидуально, при необходимости их применения.

     

    Удаление выделенной библиотеки выполняется из контекстного меню командой Удалить (Delete) (или из главного меню командой  Правка (Edit) 4 Удалить (Delete), рисунок 1.3 (или нажатием клавиши <Delete>).

     

     

     

    а)  

     

     

    в)

    Рисунок 1.3 – Удаление дополнительной библиотеки:  а) для CoDeSys с английским интерфейсом; в) для CoDeSys с русским интерфейсом

      Библиотека sound

      Формирование звукового сигнала (BeepForTimeUser)

      Структурная схема

       

      Таблица 1

      Имя программного компонента BeepForTimeUser
      Тип программного компонента Функциональный блок   Функция  Программа
      Особенности работы Для работы не требуется установка в проекте дополнительных библиотек
      Применение на контроллерах ПЛК63, ПЛК73, ПЛК410
      Входные переменные: Тип данных Пояснения
      Time_ms WORD Время в миллисекундах, на которое необходимо включить зуммер. Диапазон значений от 1 до 5000 (задается пользователем)
      freq WORD Частота зуммера в герцах. Диапазон значений от 21 до 15000 (задается пользователем)
      Выходная переменная: Тип данных Пояснения
      BeepForTimeUser INT Функция ничего не возвращает

       

      Описание работы

      Функция включает встроенный в ПЛК звуковой излучатель на заданное в параметре Time_ms время с частотой, указанной в параметре freq.

      На время, когда включен звуковой излучатель, блокируется изменение его состояния как системными звуками (например, подтверждение нажатия клавиш), так и из программного кода (функцией BeepForTimeUser). Это значит, что:

      – если в течение времени звучания звукового излучателя происходит нажатие клавиш, то звукового подтверждения их нажатия не будет;

      – если в момент звукового подтверждения нажатия клавиши происходит вызов функции BeepForTimeUser, то этот вызов будет проигнорирован;

      – если в течение времени звучания звукового излучателя происходит вызов функции BeepForTimeUser, то этот вызов будет проигнорирован.

       

      Пример вызова данной функции в составе программы, которая на встроенный в ПЛК звуковой излучатель (зуммер) выводит сигнал с частотой 2 кГц на интервал времени 1000 мс, выглядит следующим образом (на языке ST):

       

      BeepForTimeUser(1000,2000);

       

        Конфигурирование модулей Profibus в CoDeSys (часть 2)

        DP параметры ведомого

        Данный диалог отображает параметры, определенные в файле описания устройства ведомого (Диалог может иметь другой заголовок, определенный в конфигурационном файле):

        DP параметры ведомого

        Info Manufacturer (изготовитель), GSD Revision, ID (идентификационный номер), HWRelease и SWRelease (версии аппаратуры и ПО), GSD-имя файла, тип ведомого

        Standard parameter

        Identnumber: Уникальный идентификатор, присвоенный PNO даному типу устройств.

        Обеспечивает однозначное соответствие DP ведомого и GSD файла.

        TSDR (Tbit*): Time Station DelayResponder: Время рекции, минимальное время, после

        которого ведомый может отвечать ведущему. (min. 11 TBit)

        * TBit: Время передачи бита PROFIBUS; Определяется скоростью передачи; например

        1 TBit на 12MBaud=1/12.000.000 бит/сек = 83нс

        Lock/Unlock: ведомый болокируется или разблокируется ведущим:

        0: min.TSDR и специфические параметры ведомого могут перезаписываться

        1: Ведомый разблокирован для других ведущих,

        2: Ведомый блокирован для других ведущих,все параметры приняты;

        3: Ведомый разблокирован для других ведущих

        Identification Station address (см ‘Параметры вудущего DP’), Station name — имя станции, доступно для редактирования.

        Activation Активация: Ведомый разрешен или запрещен в данной конфигурации. Если активация снята, то конфигурационные данные передаются коммутатору, но обмен в сети не производится.

        Watchdog ЕслиWatchdog Control активен, то доступна и настройка его работы (мониторинг обращения, дискрета 10 ms). Если ведомый не опрашивается ведущим заданное время, он будет сброшен в начальное состояние.

        Для просмотра GSD файла используйте кнопкуGSD File.

        Входы/выходы ведомого DP

        Диалог конфигурирования входов/выходов ведомого

        Сособ конфигурирования ведомого DP определяется наличием у него модульной либо фиксированной структуры.

        Выберите в левом окне диалога необходимый модуль ввода-вывода и нажмите кнопку Select, он будет помещен в правое окно. Ощибочно добавленные модули удаляются кнопкой Delete. Добавленные модули немедленно отображаются в дереве конфигурации. Если затем выбрать такой модуль, то для него показывается соответствующий диалог Profibus Modul, описывающий входы, выходы и диагностические адреса. Если вы выберете отдельный канал модуля, то для него будет доступен диалог Profibus Channel, описывающий адрес канала. Оба диалога могут иметь специальные заголовки, описанные в конфигурационном файле.

        Максимальные размеры данных (Max. length of input data, Max. length of output data, Max. length of in-/output data) и максимальное число модулей (Max. number of modules) определяются в GSD-файле.

        Данная информация отображается для обоих списков модулей. Левый блок отображает максимальные значения для устройства, правый блок отображает суммарные по всей текущей конфигурации показатели. При достижении максимумов будет дано сообщение об ошибке.

        Список в левом окне содержит все доступные модули (описанные в GSD файлах), а правое окно дает текущий список установленных для данного устройства модулей ввода-вывода.

        Для модульных устройств аналогичным образом можно добавлять модули ввода-вывода к ведомому и удалять их кнопкой Delete.

        Кнопка Properties открывает диалог свойств модуля ввода-вывода ‘Module properties’, выбранного в правом или левом окне списков. Он включает имя Name, Config (описание модуля по стандарту PROFIBUS) размер входов и выходов в байтах. Если описание модуля в GSD файле имеет специфические параметры, то они отображаются со своими значениями и диапазонами значений. Если опция Symbolic names активна, то используются символьные имена.

        Диалог свойств модуля ввода/вывода ведомого DP

        Пользовательские параметры ведомого DP

        Диалог пользовательских параметров ведомого DP

         

        Здесь приведены некоторые дополнительные параметы ведомого, определенные в GSD-файле. Колонка Parameters содержит наименование параметра. Значение параметра задается в столбце Value. Для его редактирования щелкните дважды по значению мышкой или используйте правую клавишу мыши. Допустимые значения могут быть ограничены Value range.

        В GSD-файле применяются символьные имена значений параметров. Если включена опция Symbolic names, то значения отображаются в виде символьных имен. Для информации над таблицей указан размер пользовательских параметров Length of user parameters.

         

        Создание группы ведомых

        Диалог свойств группы ведомых

         

        Диалог используется для назначения ведомых в одну или несколько из восьми возможных групп. С другой стороны, общие свойства группы (Sync. и-или Freeze) определяются в конфигурации свойств ведущего (см. ‘Параметры ведущего DP’). Этот же диалог доступен через кнопку Global Group Properties.

        Группа (группы), в которую включен ведомый, обозначается значком «плюс». Для добавдения / удаления ведомого выберите имя группы в колонке Group Membership и дайте команду ‘Add slave to group’ (добавить) / ‘Remove slave from group’ (удалить) из контекстного меню (правая клавиша мыши).

        Ведомое устройство может быть добавленно только в группу, свойства которой оно поддерживает. A slave device can only be assigned to those groups whose properties it supports. Свойства каждого ведомого отображаются над таблицей (Sync. Mode / Freeze Mode). В них отмечены свойства, поддерживаемые модулем.

        Параметры модуля ведомого DP

        Параметры модуля ведомого DP аналогичны параметрам других модулей. Значения

        параметров редактируются обычным способом.

        Параметры ведомых DP в подчиненных сетях Profibus

        Если Profibus работает в подчиненном режиме, то ведомые устройства вставляются в дерево конфигурации на уровне ведущих. Конфигурация настраивается в (описанных выше) диалогах: Базовых параметров, DP параметров, параметров модуля и ввода/вывода.

         

        Конфигурирование модулей Profibus в CoDeSys (часть 1)

        CoDeSys поддерживает конфигурацию аппаратных средств по стандарту Profibus DP. В profibus системах определены модули типа ведущий (master) и ведомый (slave). Каждый ведомый обеспечивается набором параметров и передает данныме по запросу ведущего.

        Система PROFIBUS DP состоит из одного или нескольких ведущих и их ведомых. Вначале модули должны быть сконфигурированы так, чтобы обмен данных по сети был возможен. При инициализации сетевой системы каждый ведущий настраивает своих ведомых в соответствии с заданной конфигурацией. При функционировании сети ведущий посылает и/или запрашивает данные у ведущих.

        Конфигурация ведущих и ведомых модулей в CoDeSys основана на gsd файлах, поставляемых изготовителем аппаратных средств. С этой целью и gsd-файлы размещаются в директориях конфигурации. Модули, описанные в gsd файле, можно добавлять в дерево конфигураций и редактировать их параметры. Далее к ведущему могут быть добавлены несколько ведомых. Если DP ведущий выбран в дереве конфигураций, в правой части окна будут доступны следующие диалоги: Base parameters, DP Parameter, Bus parameters, Module parameters.

        Если выбран DP ведомый в списке DP ведущего, то справа будут доступны следующие диалоги: (в зависимости от определений в конфигурационном файле): Base parameters, DP Parameter, Input/Output, User parameters, Groups, Module parameters. В зависимости от определений в конфигурационном файле диалог «DP Parameter» может иметь иной заголовок.

        Если выбран DP ведомый, вставленный в конфигурацию на уровне ведущих, то будут доступны следующие диалоги: Base parameters, DP parameters, Input/Output, Module parameters.

        Базовые параметры ведущего

        Диалог базовых параметров (Base parameters) ведущего модуля DP включает параметры: Module ID, Node number, Input, Output и адреса диагностики.

        Do not adapt address automatically: Данная опция доступна, только если она разрешена в конфигурационном файле. Если она включена, то модуль учитываться в случае пересчета адресов.

        Параметры модуля ведущего

        Диалог параметров модуля (Module parameters) ведущего DP включает параметры ответственные за другие модули: Здесь отображаются параметры, присвоенные ведущему в дополнение к параметрам DP, и сети, определенные в конфигурационном файле. Изменение параметров выполняется, как описано выше в разделе «Конфигурация модулей ввода/вывода».

        DP параметры ведущего

        Данный диалог (DP parameters) отображает параметры, определенные в файле описания устройства ведущего (Диалог может иметь другой заголовок, определенный в конфигурационном файле):

        Диалог параметров ведущего

         

        InfoManufacturer (изготовитель), GSD Revision, ID (идентификационный номер), HW Release и SWRelease (версии аппаратуры и ПО), GSD-имя файла

        Module name Имя модуля доступно для редактирования.

        Addresses Station address: адрес станции от 0 до 126. Каждое новое устройство, добавленное в сеть получает очередной номер (примечание: адрес DP ведомого 126 по умолчанию). Допускается ручной ввод.

        Highest station address: старший адрес станции (HSA), присвоенный сети. Здесь же может быть задан и нижний адрес, ограничивающий GAP диапазон (диапазон адресов, где происходит поиск новых подключенных устройств).

        Для просмотра GSD файла используйте кнопкуGSD File.

        Путем помещения ведомых (см. ‘Параметры ведомого DP’ и ‘Создание группы ведомых’) в различные группы передачу данных ведущего можно синхронизировать через глобальную команду управления. С командой Freeze ведущий вынуждает ведомого или группу „заморозить» входы в их мгновенном состоянии и передавать эти данные при следующем обмене. Командой Sync ведомые принуждаются к одновременному переключению всех выходов по очередной Synch команде в соответствии с данными, полученными от ведущего после первой команды.

        Для переключения опций Freeze и Sync для группы используйте контекстное меню (левая клавиша мыши).

        DP параметры ведущего / Свойства группы

        Сетевые параметры ведущего

        Сетевые параметры (Bus parameters) описывают параметры таймаутов коммуникации. Если включена опция Optimize, то значения параметров будут вычисляться автоматически, в зависимости от скорости Baudrate, заданной пользователем, и параметров, установленных в GSD файлах.

         

        Сетевые параметры ведущего DP

        Все параметры также можно задавать вручную.

        Baud rate Допускается выбор значений из заданных в GSD файле. Задавать необходимо только скорость передачи, обеспечиваемую всеми ведомыми.

        Optimize Если данная опция включена, значения параметров будут вычислятся автоматически. Редактирование параметров доступно, только если опция выключена.

        Slot Time Максимальное время ожидания ведущим ответа на передачу запроса ведомому.

        Min.Station Delay min. TSDR (in tbit): минимальное время реакции, после которого станция в сети может отвечать (min. 11 tBit)

        Max.Station Delay max. TSDR (in tbit): максимальный интервал, за который ведомый должен отвечать.

        Quiet Time TQUI (in tbit): период простоя (idle), необходимый для переключения передатчика.

        Target Rotation

        Time

        TTR (in tbit): время цикла; интервал, в течение которого ведущий должен получить маркер. Получается в результате суммирования времен владения маркером всех ведущих сети.

        Gap Update FactorФактор обновления GAP: число циклов сети, через которое ведущие проводят поиск вновь включенных станций (в диапазоне адресов от своего собственного до адреса следующей станции).

        Max. Retry Limit Максимальное число запросов, посылаемых ведущим, при отсутствии ответа ведомого.

        Min. Slave Interval Пауза между двумя циклами сети, которую ведомый может использовать для обработки полученного запроса. Заданное здесь значение должно соответствовать заданным в GSD файле спецификациям.

        Poll Timeout Максимальное время ответа ведущего на запрос другого ведущего (Class 2 DP master)(дискрета 1 ms).

        Data Control Time Время сбора ведущего. Ведущий определяет наличие хотя бы одного ответа от каж-дого своего ведомого за это время и обновляет Data_Transfer_List.

        Watchdog Time Значение времени мониторинга обращения (watchdog). Изменение значения поля не поддерживается (фиксированное значение 400 ms).

        Базовые параметры ведомого DP

        Диалог базовых параметров ведомого (DP-Slaves) аналогичен диалогам любых типов модулей: Module id, Node number, Input-, Output— и Diagnostic address.

        Do not adapt address automatically: Данная опция доступна, только если она разрешена в конфигурационном файле. Если она включена, то модуль учитываться в случае пересчета адресов.

         

        Диалог базовых параметров ведомого DP

         

         

        Бортжурнал в CoDeSys

        Бортжурнал — это детальный протокол последовательности действий, которые были выполнены в течение Online сессии. Бортжурнал записывается в двоичный файл (*.log).  Пользователь может сохранить выбранные фрагменты во внешнем файле. Окно протокола можно открыть в режиме Offline либо Online и использовать его для непосредственного мониторинга действий.

        ‘Окно’ ‘Бортжурнал’

        Открывает окно бортжурнала. Аналогично работает выбор ‘Бортжурнал’ на вкладке ресурсов.

         

        В окне бортжурнала после слова Бортжурнал дано имя файла. Если используется файл протокола текущего проекта, то здесь присутствует слово «(Внутр.)»

        Зафиксированные действия показаны в окне протокола. Последнее действие всегда находится в конце списка. Протоколируются только действия, принадлежащие категориям, выбранным в поле «Фильтр» опций проекта Бортжурнал.

        Информация, относящаяся к выбранному действию, находится  в нижней части окна:

        Категория: Категория, к которой относится выбранное действие. Определено 4 категории:

        • Действие пользователя: Пользователь выполнил функцию Online (в основном это команды из меню «Онлайн»)
        • Внутреннее действие: Внутреннее действие в режиме Online (например, удаление буферов (Delete Buffers) или инициализация отладки (Init Debugging)).
        • Изменение статуса: Статус системы реального времени был изменен (например, выполнение программы было остановлено на точке останова).
        • Исключение: Произошло исключение, например, ошибка связи.

        Описание: Тип действия. Пользовательские действия имеют те же имена, что и соответствующие пункты меню «Онлайн». Все остальные действия имеют те же имена, что и соответствующие функции OnlineXXX().

        Информация: Это поле содержит описание ошибки, которая произошла во время выполнения действия. Оно пусто, если действие выполнено без ошибок.

        Системное время: Системное время начала действия с точностью до секунды.

        Относительное время: Время начала действия относительно начала Online-сессии с точностью до миллисекунды.

        Длительность: Продолжительность действия в миллисекундах.

        Меню Бортжурнал

        Когда открыто окно бортжурнала, в главном меню появляется новый пункт Бортжурнал, включающий следующие команды:

        Открыть…  Загружается внешний файл бортжурнала (*.log). Для этого используется стандартный диалог открытия файла.  Протокол текущего проекта при этом не удаляется и выводится снова, если началась новая Online сессия или если окно бортжурнала закрыто, а потом снова открыто.

        Сохранить… Позволяет сохранить бортжурнал целиком или частично во внешнем файле. Для этого выводится диалог выбора Online-сессий, которые нужно сохранить.

         

        Выберите необходимые сессии и нажмите кнопку OК, появится стандартный диалог для сохранения файла.

        Журнал тек. проекта данная команда выполнима, если в данный момент используется внешний файл протокола. Выводит бортжурнал текущего проекта.

        Хранение файла бортжурнала

        Независимо от того, используется ли в данный момент информация из внешнего файла или нет, протокол текущего проекта автоматически сохраняется в двоичном файле с именем <имя проекта>.log. Путь к этому файлу устанавливается в опциях проекта «Бортжурнал». Обычно это та же директория, в которой сохраняется проект.

        Максимальное число сохраняемых Online сессий устанавливается в опциях проекта «Бортжурнал». Если число сессий превышает максимальное, то самая старая сессия заменяется новой.

         

          Сименс импорт в CoDeSys

          В подменю «Проект» «Сименс импорт», вы найдете команды, которые позволяют импортировать компоненты (POU) и переменные из файлов Siemens STEP5/7.

          Команда «Импорт SEQ файла» позволяет  импортировать глобальные переменные из символьных файлов STEP5. Эта команда выполняется перед командой «Импорт проекта S5» для создания удобочитаемых идентификаторов при импортировании компонентов. Две эти команды позволяют импортировать компоненты из файлов STEP5 в открытый проект CoDeSys. Вы можете оставить компоненты на языке STEP5 IL или конвертировать их в МЭК языки.

          Мы рекомендуем, проводить импортирование в пустой проект CoDeSys. Обязательно включите библиотеку standard.lib, иначе вы не сможете импортировать таймеры.

          Импорт из символьных файлов  SEQ

          SEQ это обычный формат символьных файлов STEP5. Символьные определения считываются из файлов *. seq. Каждое определение включает абсолютный адрес S5 элемента программы (вход, выход, память, и т.д.), соответствующий идентификатор, а также может содержать комментарии. Это текстовый файл, каждое определение начинается с новой строки. Поля определения отделены пробелами. Каждый комментарий начинается с точки с запятой.

          Определения из SEQ файла будут переведены в глобальные переменные в формате МЭК 61131-3, включая символьное имя, адрес и комментарий (если есть). Адрес будет приведен к требованиям МЭК 61131-3 (знак процента, и т.д.). Так как S5 имена могут содержать не разрешенные МЭК символы, они будут изменены, где это необходимо. Недействительные знаки будут заменены символом подчеркивания. Если потребуется больше чем одно подчеркивание, каждый последующий знак будет заменен допустимым символом (например, «0»). Если имя изменено в процессе преобразования, исходное имя будет добавлено в виде комментария. Исходные SEQ комментарии также импортируются. Может быть создано несколько модулей определения глобальных переменных. Каждый блок включает не более 64КБ текста.

          Описанный SEQ формат используется в Siemens STEP5-PG, в большинстве версий Siemens STEP7-300/400 и ACCON-PG от DELTALOGIC. Формат поддерживается в STEP7-SEQ файлах версии 3.x или старше. Формат файлов STEP7 версии 2.x не поддерживается. Вместо разделительных табуляций он содержит символические имена фиксированной длины.

          Для начала, вы указываете необходимый SEQ файл в стандартном диалоге Windows и запускаете процесс импортирования. В течение этого процесса могут возникать ошибки. Это может случиться, если разные STEP5/7 идентификаторы преобразуются в одинаковые МЭК идентификаторы. Например, два STEP5 идентификата «A!» И «A?» будут конвертированы в «A_». В этом случае возникнет следующее сообщение: «Повторное определение идентификатора A_». Измените одну из переменных.

          Ни при каких других обстоятельствах не стоит изменять список глобальных переменных. Если идентификаторы содержат адреса, допустимые в Siemens ПЛК, но несуществующие в вашем контроллере, не изменяйте их пока, даже если Вы получаете тысячу сообщений ошибках при компиляции. Сохранить исходные адреса важно для правильного импортирования компонентов.

          Если проект, в который вы импортируете уже, содержит декларацию для глобальной переменной x с прямым адресом (например, «%MX4.0») то может случиться, что импорт из SEQ содержит переменную с тем же самым адресом. Это допускается в МЭК 61131-3, но возможно не запланировано пользователем. Никаких сообщений об ошибке не будет, но ваша программа может функционировать неверно. Чтобы избежать этой проблемы, лучше импортировать в пустой проект или в проект, в котором еще нет никаких абсолютных адресов.

          После импортирования SEQ можно переходить к импортированию программных компонентов  STEP5/7. Вы можете также определить входы-выходы через конфигурацию ПЛК, это не требуется при импортировании, но позволяет своевременно обнаружить ошибки идентификаторов.

           

          Импорт из файла проекта 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 ON с операндами: T (таймер), C (счетчик)

            S, R 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 L со следующими форматами констант: DH, KB, KF, KH, KM, KT, KZ, KY, KG, KC

            SI, SE, SA SA с операндами: T

            ZV, ZR с операндами: C

            +, -, X, : с операндами: F (фикс. запятая), G (плав. запятая)

            +, — с операндами: 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 FR с операндами: T

            FR с операндами: C

            Формальные оператора старта сброса и остановки таймеров

            Все команды с диапазоном операндов BA, BB, BS, BT (данные ОС).

            SPA, SPB с некоторыми операндами: OB

            BA, BAB с операндами: FX

            E, EX with the following operands: 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

            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. Затем создайте соответствующие глобальные объявления:

            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 адреса, в формате:

            Bits: Byte-Offset.Bit-Nummer

            Non-Bits:Byte-Offset

            Два последовательных адреса слов могут пересекаться. Так %MW32 и %MW33 имеют общий байт %MB33 (только в Siemens SPS). В CoDeSys %MW32  и %MW33 обычно не имеют пресечения.

            Ваш ПЛК может иметь иерархическую модель адресации памяти, например «%MW10.0.0.Вы можете сразу переделать все адреса либо попробовать оставить их как есть. Делать это нужно очень осторожно! В Siemens программах попеременное обращение к одной и той же области памяти как слову, байту или биту является обычной практикой. При импортировании блоков данных CoDeSys создает WORD определения для соответствующих слов. Обращение к словам выполнятся напрямую. В МЭК нет возможности объявить в общей памяти несколько пересекающихся переменных разного типа. Но это возможно в прямоадресуемой (M) памяти и памяти входов-выходов. Если применяли адреса типа %MX33.3, %MB33, %MW32 или %MD30, их корректное преобразование нужно выполнить вручную.

            Используйте список перекрестных ссылок, включающий входы, выходы и распределение памяти. Проверьте пересекающиеся области и исключите их там, где их не должно быть.

              Описание библиотеки UNM контроллеров ОВЕН ПЛК1хх

              Библиотека Universal Network Module (далее UNM) предназначена для приема/передачи последовательности байт через встроенные порты контроллера (RS232/RS485/Ethernet).

              Для использования библиотеки нужно создать в конфигурации контроллера один (или несколько)  модулей Universal Network Module. Внутри каждого модуля нужно настроить параметры порта передачи данных. Для последовательных портов это скорость, четность, биты данных, биты стопа, время задержки. Для Ethernet это порт TCP/IP протокола.

              Особенностью данной библиотеки является возможность работать одновременно с модулями протоколов Modbus, DCON и ОВЕН на одном физическом интерфейсе. Это позволяет создать модуль опроса устройства стандартными командами и в то же время выдавать в интерфейс и получать из интерфейса в нужное время произвольную последовательность байт. Например – в случае, если на порт RS232 установлен модем, до начала работы стандартного модуля опроса программа пользователя позволяет уставить связь с удаленным устройством используя “AT” последовательности. После чего начинает работать модуль опроса устройства через стандартный протокол.

              Описания функций

              1)      LockDevice:DWORD – функция захвата интерфейса.

              До начала передачи/приема в интерфейс данных из программы CoDeSys нужно «захватить» интерфейс и приостановить работу с этим интерфейсом модулей протоколов, подключенных в PLC Configuration.

              Параметры:

              DeviceNumber:DWORD – номер модуля UNM – нумерация идет с 0 по порядку сверху вниз как расположены модули UNM в конфигурации. Первый сверху модуль UNM имеет номер 0, следующий номер UNM – 1, и так далее.

              Возвращаемое значение:

              1 – интерфейс захвачен

              (-1) – неверный номер интерфейса

              2)      ReleaseDevice:DWORD – функция освобождения захваченного ранее интерфейса. Все прочие модули PLC Configuration на данном физическом интерфейсе возобновляют свою работу.

              Параметры:

              DeviceNumber:DWORD – номер модуля UNM

              Возвращаемое значение:

              1 – интерфейс высвобожден

              (-1) – неверный номер интерфейса

              3)      SetByte:DWORD – передать в интерфейс строку байт данных.

              Параметры:

              DeviceNumber:DWORD – номер модуля UNM;

              Line: STRING — строка содержащая массив байтов для последовательной передачи (до 256 байт);

              Len: DWORD — длина массива данных.

              Возвращаемое значение:

              (-1) – неверный номер интерфейса

              N   — количество переданных байт.

              4)      GetByte: POINTER TO RBDATA – получение данных из интерфейса

              Параметры:

              DeviceNumber:DWORD – номер модуля UNM;

              Возвращаемое значение:

              Указатель на структуру  RBDATA. Если неверно указан номер интерфейса – возращает NULL. Если нет принятых данных то так же передается NULL.

              Описание структуры RBDATA

              STRUCT

              data:  BYTE;               —  Принятый байт

              flags: BYTE;                —  Флаги

              Флаги

              unsigned char    reserved:                     1;         Не используется

              unsigned char    noktime:          1;         Время между байтами >1.5 символов

              unsigned char    new_frame:                 1;         Для внутреннего использования

              unsigned char    end_frame:     1;         Время между байтами >3.5 символов

              unsigned char    temp_el_full:    1;         Для внутреннего использования

              unsigned char    overrun:                      1;         Ошибка переполнения буфера

              unsigned char    frame_error:   1;         Ошибка стоп бита

              unsigned char    parity_error:    1;         Ошибка четности

              5)      RBDATA_TO_STRING:STRING – преобразовать принятый байт (из структуры RBDATA) в строку.

              Параметры:

              Указатель на структуру  RBDATA

              Возвращаемое значение:

              Строка содержащая один символ с кодом ASCII который соответствует значению поля data указателя на структуру RBDATA.

              6)      BYTETOSTRING:STRING — преобразование байта в строку. Выходная строка содержит значение в шестнадцатеричном коде. Например InByte=16  возврат “0F”

              Параметры:

              InByte:BYTE – значение для перекодирования

              Возвращаемое значение:

              Строка с шестнадцатеричным кодом символа

              7)      POLINOM_SUMM – функция расчета 8-бит контрольной суммы по алгоритму Dallas Semiconductors (исп. также в DCON)

              Параметры

              Line: STRING; — массив для расчета контрольной суммы

              LineSize: DWORD; — длина массива

              Возвращаемое значение:

              байт с рассчитанной контрольной суммы.

              8)      SUMMFORMOD256 –функция расчета суммы по модулю 256 (суммирование байтов без учета переполнения)

              Параметры

              Line: STRING; — массив для расчета суммы по модулю 256

              LineSize: DWORD; — длина массива

              Возвращаемое значение:

              байт с рассчитанной суммы по модулю 256

              9)      INITCOM : DWORD* – инициализация модуля  параметрами, заданными в структуре COM_INI. Функция позволяет инициализировать последовательный порт новыми параметрами, например, изменить скорость передачи данных.

              Параметры:

              DeviceNumber:DWORD – номер модуля UNM

              INI: POINTER TO COM_INI;

              Описание структуры COM_INI

              STRUCT

              unsigned char speed;                                 //Скорость  бит/с

              115200 = 0,

              57600 = 1,

              38400=2,

              28800=3,

              19200=4,

              14400=5,

              9600=6,

              4800=7,

              2400=8,

              1200=9

              unsigned char parity;                                //Четность

              EVEN = 0,

              ODD=1,

              SPACE=2,

              MARK=3,

              NO_PARITY=4,

              MULTY_DROP = 6

              unsigned char bit_lenght;                            // Биты данных

              BITS_5=0,

              BITS_6=1,

              BITS_7=2,

              BITS_8=3

              unsigned char stop_lenght;                           //Бит стоп

              STOP_1=0,

              STOP_1_5=1,

              STOP_2=2

              Остальные поля структуры не используются т.к. изменение параметров возможно только для последовательных портов (не Ethernet)

               

              P.S. Всегда самые свежие цветы, самые красивые букеты, доставка цветов по москве бесплатно и очень приятные цены! Закажите цветы для своих любимых, друзей и коллег прямо сейчас…

                Подключение модуля МВ110-224.8ДФ к СПК -207 (часть 2)

                Создание программы опроса модуля в СПК 207

                 

                Программа СПК 207 создается в программном обеспечении CoDeSys версии 3.4. С порядком программирования СПК 207 можно ознакомиться в документе «СПК 207. Руководство по эксплуатации».

                Создадим новый проект выбором команды Пуск | Программы | 3S CoDeSys | CoDeSys.3.4 запустить CoDeSys. Откроется главное окно программы (см. рисунок 6).

                Рисунок 6 Главное окно CoDeSys 3.4

                Выбором команды File | New Project или нажатием кнопки «New Project» () панели инструментов главного окна CoDeSys – открыть окно создания нового проекта «New Project».

                В окне создания нового проекта «New Project» – в поле «Name» задать наименование нового проекта и выбрать размещение файла проекта (в поле «Location»; выбор папки производится в стандартном окне выбора каталога «Обзор папок», открывающемся при нажатии кнопки с тремя точками, расположенной у правого края поля). В этом же окне, в поле «Categories» – указать категорию нового проекта («General»), в поле «Templates» – указать шаблон нового проекта («Standard Project»). Нажать кнопку «OK» окна. Окно «New Project» закроется, откроется окно задания характеристик проекта «Standart Project».

                В окне задания характеристик проекта «Standard Project» (см. рисунок 7) в поле «Device» – выбрать требуемый целевой файл, в рассматриваемом случае – «OWEN SPC2xx.03.tw (Owen)». Целевой файл должен быть предварительно инсталлирован в CoDeSys. В поле «PLC_PRG in:» необходимо выбрать требуемый язык программирования (в данном случае – Continuous Function Chart, CFC).

                Для принятия выбранных настроек нажать кнопку «OK» окна. Окно «Standard Project» закроется, откроется главное окно CoDeSys с деревом нового проекта, отображающимся в левой части окна.

                Рисунок 7. Окно задания характеристик проекта «Standard Project»

                В главном окно CoDeSys с деревом нового проекта необходимо добавить в проект библиотеки функциональных блоков «ModulsOwenLib» (файл «ModulsOwenLib.library») и ModBus (файл «ModBus.library»). Результат операции представлен на рисунке 8.

                 

                Рисунок 8. Окно Library Manager после добавления служебных библиотек Modbus и ModusOwenLib

                Из добавленной библиотеки «ModulsOwenLib» в программу включаются 3 функциональных блока: блоки «МV110_8D_inputs» и «МV110_8D_counter» для опроса модуля, а также блок «ComConn» для открытия COM-порта. Для включения требуемого функционального блока в текст программы необходимо выделить в дереве проекта строку PLC_PRG, перейти на вкладку «PLC_PRG» и добавить в текст программы модуль типа «Box» (см. рисунок 9, а, б). После этого – выделить строку «???» в изображении блока (см. рисунок 9, в). Справа от строки активируется белая кнопка. По нажатию этой кнопки открывается окно «Input Assistant» (см. рисунок 8).

                а) б) в)

                Рисунок 9.  Добавление функционального блока в проект

                 

                В окне «Input Assistant» (см. рисунок 10) следует выделить требуемый блок, и нажать кнопку «OK» окна (операция проводится индивидуально для каждого блока).

                Рисунок 10 Выбор функционального блока в окне «Input Assistant»

                Результат выбора блока «ComConn» отображен на рисунке 11.

                Рисунок 11 Блок «ComConn» в тексте PLC_PRG

                Для использования в программе блокам необходимо присвоить имена и задать переменные блока в области определения переменных программы. Для этого следует выделить строчку «???» (наименование блока), задать наименование блока (например, «CON») и нажать клавишу «Enter». Откроется окно определения переменных «Auto Declare» (см. рисунок 12). В этом окне, не производя изменений, следует нажать кнопку «OK». Окно «Auto Declare» закроется, а в области определения переменных отобразится применяемый блок (см. рисунок 13).

                Для использования в программе модуля МВ110-8ДФ используется блоки  MV110_8D_INPUTS и MV110_8D_COUNTER, отображающие входы и счетчики модуля соответственно. Их добавление в программу  и определение их переменных производится аналогично блоку ComConn.

                 

                Рисунок 12 Окно определения параметров блока «Auto Declare»

                 

                Рисунок 13 Блок «ComConn» в программе PLC_PRG после задания имени

                Инициализация функционирования порта производится однократно, соответственно, блок должен вызываться в программе один раз.

                Структура блока «ComConn» приведена на рисунке 13.

                Входы блока «ComConn»( значения по умолчанию выделены подчеркиванием[1]):

                «Enable» – разрешение работы (TRUE, FALSE);

                «PortNum» – номер порта на ПЛК[2];

                «PortBaudrate» – скорость (2400, 4800, 9600, 19200, 38400, 57600, 115200);

                «PortParity» – четность (0 – нет, 1 – нечет, 2 – чет; значение по умолчанию – 0);

                «PortStopBits» – число стоп-бит (1 – 1 бит, 2 – 1,5 бита, 3 – 2 бита);

                «PortByteSize» – размер посылки (8 бит, 11 бит).

                «Port_Mode» — выбор режима работы порта СПК (2- RS-485; 0 – RS-232);

                «Port_ModeOn» — включение функции открытия порта (TRUE, FALSE)

                «Port_CloseOn» — включение функции закрытия порта (TRUE, FALSE)

                Выходы блока «ComConn»:

                «Handle» – идентификатор открытого порта (если распознается ошибка — порт занят-  то на выход подается сигнал «FFFFFFFF»);

                «Done» – флаг завершения операции;

                «ErrCode» – код ошибки.

                 

                Структура блока MV110_8D_INPUTS приведена на рис.14.

                Рисунок 14 Структура блока MV110_8D_INPUTS

                Входы блока «MV110_8D_INPUTS» (значения по умолчанию выделены подчеркиванием):

                «Handle» – идентификатор порта;

                «Enable» – разрешение работы (TRUE, FALSE);

                «Modd» — режим работы ModBus (MB_RTU, MB_ASCII);

                «Addr» — адрес прибора в сети (0-127, по умолчанию 16);

                «TimeOut» — таймаут при опросе по сети (по умолчанию 100мс);

                «ErCl» — число перезапусков (по умолчанию 3);

                 

                Выходы блока «MV110_8D_INPUTS»:

                «inp1-8» — состояние входов 1-8;

                «wErrCode» — код ошибки;

                «Done» — флаг завершения операции.

                Структура блока MV110_8D_INPUTS приведена на рис.14.

                 

                Рисунок 15 Структура блока MV110_8D_counter

                Входы блока «MV110_8D_counter» (значения по умолчанию выделены подчеркиванием):

                «Handle» – идентификатор порта;

                «Enable» – разрешение работы (TRUE, FALSE);

                «Modd» — режим работы ModBus (MB_RTU, MB_ASCII);

                «Addr» — адрес прибора в сети (0-127, по умолчанию 16);

                «TimeOut» — таймаут при опросе по сети (по умолчанию 100мс);

                «ErCl» — число перезапусков (по умолчанию 3);

                 

                Выходы блока «MV110_8D_counter»:

                «cnt1-8» — состояние счетчиков входов 1-8;

                «wErrCode» — код ошибки;

                «Done» — флаг завершения операции.

                Программа опроса входов блока МВ110-8ДФ приведена на рис. 14. В ней используется обратная связь (Done→And) для организации непрерывного опроса состояния входов прибора.

                Рисунок 16 Программа опроса входов модуля МВ110-8ДФ

                Программа  в режиме работы с включенным 4 входом прибора приведена на рис.17.

                Рисунок 17. Кадр работы программы опроса модуля МВ110-8ДФ – включен 4 вход.

                 

                Программа для отображения значения счетчиков приведена на рис.18.

                Рисунок 18. Программа опроса счетчиков входов модуля МВ110-8ДФ

                Рисунок 19 Кадр работы программы опроса модуля МВ110-8ДФ – подключен 4 вход.

                 

                Если необходимо опрашивать сразу оба блока, обращающиеся к одному порту необходимо обеспечить поочередное обращение элементов программы к порту, например как показано на рис.20.

                Рисунок 20 Программа опроса входов и счетчиков МВ110-8ДФ в одном проекте

                Рисунок 21 Кадр работы программы опроса входов и счетчиков модуля МВ110-8ДФ

                 

                [1] Если сетевые параметры прибора совпадают со значениями по умолчанию, то на соответствующие входы сигналы можно не подавать.

                [2] По умолчанию порт№1 – debug, порт№2 – com1 и т.д.