ЖУРНАЛ СТА 4/2014

переданы в последнем параметре при вызове FwModbusServerInit в рассмат- риваемом примере, имеет тип F_MODBUS_SERVER_DIAGNOSTICS , который определён в библиотеке Fast- welModbusServer.lib и позволяет прило- жению следить за текущим состоянием сервера, количеством успешных опера- ций обмена по сети, количеством низ- коуровневых и высокоуровневых оши- бок (исключений), которые могут воз- никнуть при поступлении запросов к несуществующим объектам со стороны клиента MODBUS. Область памяти, определяемая вто- рым аргументом FwModbusServerInit , отображается на набор регистров и би- товых полей, доступных для чтения и записи по сети ( Holding Register и Coil ), а область, описываемая третьим аргумен- том, – на регистры и битовые поля, до- ступные только для чтения по сети ( Input Register и Discrete Input ). Регистры и битовые поля нумеруются и адре- суются по тем же правилам, описание которых было дано для плоской модели отображения. При использовании биб- лиотеки FastwelModbusServer.lib пользо- ватель имеет дело с той же реализацией сервиса MODBUS, которая функцио- нирует в контроллерах CPM712, CPM713 и MK905-01,03\CDS в каче- стве основного сервиса внешней сети. Разница состоит только в способе кон- фигурирования сервиса MODBUS. Конфигурация сервиса, создаваемая пользователем в окне ресурса PLC Configuration , передаётся сервису MOD- BUS без участия приложения, разраба- тываемого пользователем, средствами системного программного обеспечения контроллера. Библиотека FastwelMod- busServer.lib позволяет сконфигуриро- вать сервис MODBUS из приложения. Во время работы приложения перед каждым циклом задачи, из которой вы- зывается программная единица с ин- дексом, переданным во втором пара- метре функции FwModbusServerInit , происходит копирование данных из внутреннего буфера Holding -регистров сервера MODBUS в переменную, адрес и размер которой были переданы во втором параметре вместе с номером программной единицы. Таким образом, изменения, сделанные удалённым кли- ентом MODBUS по сети, никогда не могут быть восприняты приложением посреди цикла задачи, оперирующей переменной, которая отображена на Holding -регистры и битовые поля типа Coil . В конце цикла задачи, из которой вызывается программная единица с ин- дексом, переданным функции FwMod- busServerInit в третьем параметре, про- исходит копирование данных из пере- менной, отображённой на Input -регист- ры и битовые поля типа Discrete Input , во внутренний буфер Input -регистров сер- вера MODBUS. Таким образом, клиент MODBUS никогда не сможет прочитать частично сформированное значение переменной посреди цикла задачи, под управлением которой формируется её значение. Если запрос чтения поступа- ет в такой неподходящий момент, ответ на него формируется без лишних задер- жек из внутреннего буфера Input -ре- гистров сервера MODBUS. Подробная информация о примене- нии библиотеки FastwelModbusServer.lib приведена в документации, а также в примерах программирования, постав- ляемых в пакете адаптации CoDeSys 2.3 для FASTWEL I/O. Мастер MODBUS и MODBUS TCP в контроллерах CPM712 и CPM713 В завершение рассказа о функцио- нальных возможностях контроллеров FASTWEL I/O, связанных с протоколом MODBUS, стоит упомянуть о реализа- ции клиента (мастера) MODBUS и MODBUS TCP в контроллерах CPM712, CPM713 и MK905-01,03\CDS. Для включения клиента MODBUS RTUили ASCII на контроллере CPM712 нужно в окне ресурса PLC Configuration для элемента дерева Serial Port выбрать опцию Modbus Serial Master , как показа- но на рис. 17. На контроллере CPM713 клиент MODBUS может функциониро- вать одновременно с сервером, поэтому в дереве конфигурации всегда присут- ствует элемент Ethernet Multiprotocol Port – Modbus TCP Master. Далее для CPM712 необходимо на- строить параметры обмена, включая ре- жим протокола (RTU или ASCII), ско- рость обмена, режим контроля по чёт- ности и количество стоповых битов. Общим параметром для клиентов MODBUS иMODBUS TCP на контрол- лерах CPM712 и CPM713 является пара- метр Гранулярность опроса (мс), пока- занный на рис. 18. Данный параметр определяет мини- мальный интервал времени между оче- редным и следующим запросами чтения и/или записи регистров и битовых по- лей, передаваемых в адрес удалённых серверовMODBUS. Конфигурация кли- 90 СТА 4/2014 АППА РАТ НЫЕ С Р Е ДС Т В А / П РОМЫШЛ Е ННЫЕ КОН Т РОЛЛ Е РЫ www.cta.ru Рис. 15. Структурный тип F_VAR_DESCRIPTOR Рис. 16. Инициализация сервера MODBUS в приложении

RkJQdWJsaXNoZXIy MTQ4NjUy