xiangjinjiao
Staff group-
Content Count
110 -
Joined
-
Last visited
Community Reputation
0 NeutralAbout xiangjinjiao
-
Rank
Intermediate PLC Programming Learner - 1
-
Hardwired I/O и Serial I/O — Объяснение различий
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
В программируемых логических контроллерах (ПЛК) и распределенных системах управления (РСУ) выбор между Hardwired I/O и Serial I/O становится особенно важным из-за реального времени этих систем и связанных с этим сложностей промышленных процессов. Ниже я разберу характеристики каждого из них в этих конкретных системах. Hardwired I/O Основные моменты, которые мы должны обсудить относительно Hardwired I/O, перечислены ниже. Прямое подключение Отклик в реальном времени Сложность проводки Ограниченная гибкость Надежность Целостность сигнала Пригодность Критически важные для безопасности приложения 1. Прямое подключение Hardwired I/O напрямую подключаются к ПЛК или РСУ. Каждое входное или выходное устройство имеет выделенную линию, идущую обратно к контроллеру. 2. Отклик в реальном времени Эти входы/выходы, как правило, предназначены для задач управления в реальном времени. Они особенно используются в чувствительных ко времени приложениях, таких как управление процессами, блокировки и аварийные отключения, где требуются немедленные действия. 3. Сложность проводки Для больших систем с большим количеством точек ввода-вывода решения с жестким подключением могут стать громоздкими, требуя обширной кабельной разводки и больших шкафов управления. 4. Ограниченная гибкость Модификация или расширение системы с жестким подключением может быть трудоемким из-за необходимости физической переподключения. 5. Надежность Жесткое подключение ввода-вывода часто считается более надежным для критических задач из-за его простой, двухточечной природы, что снижает риск сбоев связи. 6. Целостность сигнала Целостность сигнала обычно лучше при жестком подключении, особенно в средах с большим количеством электромагнитных помех (ЭМП) по сравнению с последовательной связью. 7. Пригодность Лучше всего подходит для небольших систем или в сценариях, где надежность и скорость имеют первостепенное значение. 8. Безопасность Аппаратные вводы-выводы в основном используются в критически важных для безопасности приложениях, таких как приложения управления промышленными процессами, где контуры управления имеют решающее значение. Последовательный ввод-вывод Основные моменты, которые нам следует обсудить относительно последовательного ввода-вывода, перечислены ниже. Сериализация данных Связь на основе протоколов Масштабируемость Возможности работы в сети Обработка данных Расстояние Уязвимость Стоимость Безопасность 1. Сериализация данных Последовательные вводы-выводы передают данные по одному биту за раз, обычно по одной линии данных. Это отличается от параллельных систем, которые отправляют несколько битов одновременно. У нас есть отдельные провода для каждого сигнала в аппаратных вводах-выводах, но последовательные вводы-выводы обычно имеют один кабель для передачи/приема всех данных. 2. Протокольная связь Обычно они полагаются на устоявшиеся промышленные протоколы, такие как Modbus, PROFIBUS или Ethernet/IP для связи, которые стандартизируют обмен данными между устройствами. 3. Масштабируемость Последовательные вводы-выводы, как правило, более масштабируемы. Добавление дополнительных точек ввода-вывода часто требует просто настройки существующей сети без необходимости в дополнительных кабелях обратно к контроллеру. 4. Сетевые возможности Последовательные вводы-выводы можно легко объединить в сеть, и они часто имеют встроенную диагностику, что делает их более универсальными, но также добавляет сложности. 5. Обработка данных Последовательные вводы-выводы более универсальны, когда дело касается обработки данных. Они могут передавать по сети более сложные типы данных, включая действительные числа и строки. 6. Расстояние Они лучше подходят для приложений, где точки ввода-вывода расположены далеко от контроллера ПЛК или РСУ. В некоторых случаях нам могут понадобиться некоторые специальные устройства, такие как повторители, шлюзы и т. д. 7. Уязвимость Поскольку они основаны на протоколах, последовательные вводы-выводы могут быть более уязвимы к таким проблемам, как конфликты данных, задержка и другие проблемы, связанные с сетью. 8. Стоимость Хотя первоначальные затраты на настройку могут быть выше из-за сетевого оборудования, долгосрочные затраты могут быть ниже, особенно для систем, требующих частых изменений или масштабирования. 9. Безопасность Последовательные вводы-выводы никогда не используются в критически важных для безопасности приложениях, поскольку повреждение основного кабеля может привести к полному отказу данных. Выбор между аппаратным и последовательным вводом-выводом Выбор между ними часто зависит от различных факторов, таких как размер системы, требуемая скорость работы, безопасность, сложность данных и соображения стоимости. Инженеры обычно проводят подробный анализ, иногда даже используя оба типа в разных разделах одной системы ПЛК или РСУ, чтобы использовать преимущества каждого. Например, аппаратный ввод-вывод может использоваться для критически важных для безопасности приложений, в то время как последовательный ввод-вывод может использоваться для задач сбора и мониторинга данных. Сравнение между аппаратным вводом/выводом и последовательным вводом/выводом В таблице ниже показаны различия между аппаратным вводом/выводом и последовательным вводом/выводом. Параметр Аппаратный ввод-вывод Последовательный ввод-вывод Тип соединения Прямое, соединение точка-точка На основе протокола, обычно сетевое Скорость передачи данных Обычно более быстрая, обработка в реальном времени Может быть медленнее из-за сериализации (в зависимости от протокола) Сложность Может быть медленнее из-за сериализации (в зависимости от протокола) Более управляемая сложность Масштабируемость Сложно и дорого масштабировать Проще и дешевле масштабировать Надежность Выше из-за меньшего количества точек отказа Может иметь больше точек отказа Проводка Требуется обширная кабельная разводка Меньше кабелей, часто всего одна линия данных Целостность сигнала Лучше в средах с высоким уровнем электромагнитных помех Может быть восприимчив к электромагнитным помехам Поддерживаемые типы данных Обычно аналоговые сигналы 4-20 мА, 24 В постоянного тока для цифровых сигналов. Может быть выше из-за сетевого оборудования Расстояние Подходит для более коротких расстояний Может обрабатывать более длинные расстояния Стоимость (начальная) Ниже для небольших систем и выше для более крупных систем Высокая (зависит от протокола) Стоимость (обслуживание) Выше из-за сложности устранения неполадок Обычно ниже Гибкость Ограниченная; сложно модифицировать Очень гибкая; легко модифицировать Избыточность Сложно и дорого внедрять Проще и дешевле внедрять Приложения безопасности Часто используется для критически важных для безопасности задач Реже используется для критически важных для безопасности задач Диагностика сети Ограниченная или отсутствует Часто встроенная Когда речь идет о безопасности в системах ПЛК и РСУ, аппаратные вводы-выводы и последовательные вводы-выводы имеют разные характеристики, которые могут либо повысить, либо потенциально поставить под угрозу безопасность промышленного процесса. Ниже приведена сравнительная таблица, сосредоточенная исключительно на аспекте безопасности этих двух типов систем ввода-вывода. Аспект безопасности Аппаратные вводы/выводы Последовательные вводы/выводы Надежность Как правило, более высокая надежность за счет прямых соединений и меньшего количества точек отказа. Протокол и сетевые, что приводит к большему количеству точек потенциального отказа. Реагирование в реальном времени Отлично подходит для реагирования в реальном времени, часто используется при аварийных отключениях и защитных блокировках. Может испытывать задержку из-за перегрузки сети или ограничений протокола, что делает их менее подходящими для немедленного действия. Сложность системы Более низкая сложность, как правило, облегчает выявление и решение проблем безопасности. Сложность сетей и протоколов может усложнить определение первопричины проблем безопасности. Целостность сигнала Менее восприимчив к электромагнитным помехам (ЭМП), что повышает качество и надежность сигнала. Потенциально более восприимчив к ЭМП и ухудшению сигнала, что может поставить под угрозу безопасность. Целостность данных Поскольку это, как правило, точка-точка, повреждение данных менее вероятно. Более подвержен проблемам целостности данных из-за сетей, что увеличивает риск сбоев, связанных с безопасностью. Человеческая ошибка Менее подвержен ошибкам конфигурации, влияющим на безопасность, из-за своей простоты. Большая вероятность человеческих ошибок во время настройки или обслуживания, влияющих на безопасность системы. Аварийные ситуации Часто предпочтительный выбор для критически важных для безопасности систем, таких как аварийное отключение, из-за быстрого времени реагирования. Обычно не используется для задач немедленного действия из-за возможной задержки и других проблем, связанных с сетью. Безопасность Меньше подверженность кибератакам, так как они, как правило, не подключены к сети. Более уязвимы для киберугроз, которые могут поставить под угрозу безопасность, из-за сетевых возможностей. Встроенные функции безопасности Функции безопасности часто жестко запрограммированы и несложны, что делает их надежными. Могут иметь встроенные протоколы безопасности, но они могут быть скомпрометированы проблемами сети. Сертификации Проще сертифицировать для критически важных для безопасности приложений из-за меньшей сложности и более высокой надежности. Может потребоваться более обширное тестирование и сертификация из-за сложности сетей и протоколов. Выбор между Hardwired и Serial I/O с точки зрения безопасности часто склоняется в пользу Hardwired I/O для критически важных приложений безопасности из-за их внутренней надежности и возможностей немедленного реагирования. Однако общая безопасность системы определяется не только типом используемого I/O; на нее также влияют такие факторы, как конструкция, методы обслуживания и компетентность эксплуатационного персонала. -
Модернизация и миграция систем ПЛК
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Будь то промышленная автоматизация или любая другая система ПЛК, каждое устройство или оборудование достигает стадии после определенного периода времени, когда возникает необходимость либо изменить его, либо обновить. Модернизация и миграция ПЛК, если он прослужил более 10 лет, достигнет стадии, когда его техническая поддержка больше не будет существовать или ПЛК не будет доступен для замены, поскольку он устарел. В этом случае у вас остается два варианта — либо перейти на совершенно новый набор ПЛК, либо обновить прошивку и программу. Эту разницу действительно важно понимать, так как она помогает выбрать правильную работу для нее. В этой статье мы узнаем разницу между модернизацией и миграцией систем ПЛК и поймем, как реализовать правильную. Зачем нужна миграция или модернизация систем ПЛК? Прежде чем углубляться в тему, необходимо прежде всего понять, почему нам нужно делать то же самое. Предположим, что вы используете ПЛК «X» почти 15 лет. Это не похоже на то, что программа внезапно начнет работать со сбоями; это совершенно другая теория и всецело зависит от того, как программист написал код. Код ПЛК, однажды написанный, выполняется так же, как и всю жизнь. Проблема начинается с оборудования и поддержки. Производитель ПЛК в большинстве случаев не будет держать этот ПЛК «X» в производстве в течение столь длительного периода времени, если он нестабилен или имеет много ограничений в программировании. Рано или поздно этот ПЛК начнет устаревать, и его замена будет недоступна. Даже системный интегратор или сам производитель ПЛК не смогут предоставить свою техническую поддержку, поскольку персонал для него будет переведен на более новую марку или его кабель для программирования также больше не будет доступен. В этом случае, если система ПЛК внезапно выйдет из строя по какой-либо причине, у вас не останется иного выбора, кроме как ждать окончания более длительного периода простоя. Кроме того, если вы все еще можете получить этот ПЛК откуда-то, его стоимость будет сверхвысокой и не впишется в бюджет. С текущими сбоями в цепочке поставок и недавним дефицитом новых решений и деталей для промышленной автоматизации невозможно точно оценить, сколько времени может занять поиск нового блока. В этом случае у вас остается два варианта — либо перейти на другой бренд, либо обновить существующий на более новую прошивку ЦП или программу. Итак, именно по этой причине миграция и обновление играют важную роль в промышленной автоматизации. Кроме того, новые решения приносят с собой меньше ошибок и рисков, более сильную техническую поддержку, экспертизу обслуживания, меньшие капитальные вложения и эффективную работу завода. Что такое миграция системы ПЛК? Прежде всего, давайте разберемся с более простым из двух. Миграция означает полную замену старой системы новой системой. Это похоже на переезд гражданина из предыдущего города в новый. Предположим, у вас есть старый ПЛК, в котором есть некоторые аппаратные дефекты после того, как он был найден 10-летним. Два цифровых входа ЦП вышли из строя, и ЦП больше не доступен на рынке. Кроме того, из-за какой-то неудачи системный интегратор, который предоставил ПЛК, закрыл свой бизнес или перешел на более новые бренды. В этом случае миграция означает, что вам нужно будет купить ПЛК какой-то другой марки. Перед покупкой вам нужно будет учесть такие факторы, как количество вводов-выводов, проводка ввода-вывода, доступность коммуникационного порта, емкость программирования, емкость памяти, скорость выполнения, насколько его можно расширить и т. д. После того, как вы пройдете через все это, вам нужно будет купить новый и написать на нем новую программу в соответствии с программным обеспечением производителя. Кроме того, вам необходимо поделиться предыдущим списком ввода-вывода с новым поставщиком, чтобы он выполнил сопоставление ввода-вывода в ПЛК соответствующим образом и сократил время на подключение вводов-выводов в электрической панели. После этого вы можете заменить старый ПЛК на новый и использовать систему соответствующим образом. Хотя новые и согласованные стандарты программирования не могут быть полностью применены при использовании этого подхода, общая функциональность остается максимально близкой к исходной, и программа может быть в некоторой степени улучшена. Что такое модернизация систем ПЛК? Давайте рассмотрим второй случай модернизации системы ПЛК. У вас есть тот же ПЛК производителя, который обсуждался ранее, и произошел его сбой. Теперь вы обнаруживаете, что доступен некоторый более высокий уровень ПЛК того же производителя с похожим стилем кодирования и функциональными возможностями ввода-вывода. Даже поставщик доступен для поддержки. Вместо того, чтобы менять поставщика на более нового или полностью менять марку ПЛК, вам просто нужно будет обновить свою систему до более новой и более высокой. Этот новый ЦП придется либо переписать с новым кодированием, либо просто подключить и запустить, в зависимости от программного обеспечения. Таким образом, обновление требует более полной разводки ввода-вывода и кодирования ПЛК, которые необходимо выполнить, поскольку мы обновляем систему. Кроме того, переписывание новых кодов с нуля позволяет программисту устранить ошибки, которые он заметил в старых системах, а также спланировать эффективную и надежную логику более простым способом. Это подход к обновлению системы с чистого листа. Разница между миграцией и обновлением систем ПЛК Миграция означает переход на совершенно нового производителя ПЛК, тогда как обновление означает переход на новый ЦП того же производителя ПЛК. Миграция дешевле обновления, так как требует меньше простоев, меньше нового оборудования, меньше времени на программирование и проектирование инфраструктуры. Миграция менее рискованна, чем обновление, так как у вас уже есть программа старой версии, и вам просто нужно скопировать и вставить ее. Хотя 100% копирование невозможно, функциональные возможности могут быть во многом схожи из-за этого подхода. Миграция может привести к новому оборудованию, и это может занять время у инженеров, чтобы быстро понять систему, чтобы они могли ее обслуживать и устранять неполадки. В этом случае обновление намного проще. Миграция менее надежна и эффективна, чем обновление, потому что вы не знаете, как этот новый ПЛК будет работать сейчас, несмотря на то, что вы так много его изучили. Миграция и обновление — это сложная задача, требующая детального опыта инженеров и программистов, которые в ней участвуют. Кроме того, действия, которые следует предпринять, различаются от системы к системе. После выполнения это может значительно облегчить вашу задачу. Таким образом, мы увидели концепцию обновления и миграции систем ПЛК. -
Знакомство со светодиодной индикацией на ПЛК GE Make
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Мы все знаем, насколько важен ПЛК в сегодняшнюю эпоху автоматизации, так много популярных брендов ПЛК, например, Siemens, Yokogawa, AB, ABB, GE и т. д. На этих контроллерах ПЛК предусмотрено так много светодиодной индикации для понимания различных состояний контроллера, но чтобы узнать состояние, сначала нужно понять значение этих индикаций. Светодиодная индикация на ПЛК GE Make В этой статье мы рассмотрим светодиодную индикацию одного из ПЛК GE, в частности, серии CPL, а также разберемся с функционированием различных портов, доступных на контроллере. В этой статье мы расскажем о светодиодной индикации модели CPL-410 ПЛК GE make. О модели CPL 410 Эта система PAC (программируемый контроллер автоматизации), которая называется RX3iCPL410, оснащена встроенным сервером Linux, поддерживает такие языки программирования, как релейная логика, структурированный текст, функциональная блок-схема и C. Содержит 64 МБ настраиваемых данных и памяти программ, 32 Кбит для дискретного ввода и вывода и 32 Кслов для аналогового ввода и вывода. Для обмена данными также поддерживается объемная память Поддерживает до 768 программных блоков, один блок имеет размер 128 Кбайт, также поддерживает 4 независимых Ethernet-локальных сети (10\100\1000). Разрешено до 32 клиентов Modbus TCP IP, одновременно могут работать 48 клиентов SRTP (протокол передачи запросов на обслуживание) и 16 одновременных подключений к серверу Modbus TCP IP. Этот ПЛК может работать при рабочих температурах от -40 до 70 градусов по Цельсию, это устройство для монтажа на DIN-рейку, поддерживает питание 18-30 В постоянного тока и не требует специального источника питания. Он оснащен пятью портами Ethernet спереди и одним разъемом RJ45 на нижней стороне. Для навигации и мониторинга различных состояний ЦП имеется OLED-дисплей, а также множество переключателей со светодиодной индикацией для мониторинга состояния и перехода по настройкам. Мы можем программировать и настраивать ЦП с помощью программного обеспечения Proficy Machine Edition, эта система может легко создавать резервную систему со временем переключения на вторичный ПЛК 100 мс. Хорошо, теперь мы обсудим светодиодную индикацию для этой конкретной модели ПЛК GE CPL-410. На изображении ниже мы видим множество индикаций и портов связи, на рис. 1 ПЛК без каких-либо соединений, а на рис. 2 — с работающими каналами связи. Рис. 1 (слева) и рис. 2 (справа) Итак, начнем с правого верхнего угла. µSD: Этот слот предназначен для вставки карты Micro-SD; карта Micro SD используется для внешнего хранения или загрузки программ; она имеет защитную крышку для предотвращения повреждения. DISP: Вы можете получить доступ к навигации по меню дисплея на OLED-дисплее и внести изменения в соответствии с требованиями, используя эту кнопку, вы можете получить доступ к настройкам локальной сети, состоянию управления, состоянию ввода-вывода, информации об устройстве, настройкам ОС Linux, информации о резервировании и командам резервирования, мы можем проверить настроенный IP каждого подключения к локальной сети. SEL: Вы можете направлять выбор с помощью этой кнопки индикации для любого изменения настроек, где вы можете перемещаться по своим параметрам в соответствии с вашими требованиями. RUN: Используется для запуска команд на ПЛК, активирует меню OLED для выбора режима RUN enabled или RUN disabled из ПЛК, в состоянии Run зеленая индикация будет мигать прямо под кнопкой запуска. STOP: используется для отправки команды Stop на ПЛК, вы можете выбрать Stop Enabled или Stop Disabled с помощью этой кнопки для ПЛК. PHY PRES: индикация физического присутствия TPM (Trusted Platform Module) с выбором, это загорится зеленым светом в исправном состоянии. SSD: активность твердотельного диска, зеленая индикация в исправном состоянии. Это для проверки исправности твердотельного диска или накопителя, на котором хранятся данные. TEMP: это указывает на то, что контроллер столкнулся с перегревом, это укажет на янтарную светодиодную индикацию, когда температура выйдет за пределы предела. OK: этот сигнал указывает на то, что ЦП в порядке и находится в исправном состоянии. OE: выход включен, зеленая индикация, когда он в порядке. FRC: когда мы применяем силу к любому модулю или оборудованию, загорается желтая индикация, что показывает, что сигнал Force включен. FLT: эта индикация загорится красным светом при наличии системной ошибки. Системная ошибка происходит в случае проблемы с любым модулем. IO: этот светодиод указывает на исправность состояния сети ввода-вывода; зеленая индикация будет светиться в исправном состоянии. RACT: избыточная система является обязательной для предотвращения сбоя процесса в случае возникновения проблем с основной системой управления, также требуется тщательный мониторинг избыточной системы для обеспечения постоянной доступности, индикация светодиода RACT будет указывать на то, что избыточность активна или резервный блок активен, индикация будет зеленой, когда резервные устройства активны, этот светодиод будет активирован, как только будет готов горячий резерв резервного ЦП. RBOK: это указывает на то, что резервный резервный блок в порядке, индикация будет зеленой. GPOK: После успешной загрузки Linux и перезапуска ЦП этот светодиодный индикатор будет мигать зеленым и показывать, что общее назначение в порядке, т. е. операционная система в исправном состоянии или готова к входу пользователя, или можно сказать, что Linux работает. PWR: Питание включено, также мы можем сбросить контроллер с помощью этой кнопки, мы должны удерживать кнопку PWR, чтобы сбросить ПЛК, в исправном состоянии она будет светиться зеленым. Коммуникационные порты в ПЛК Давайте немного разберемся с коммуникационными портами: USB1: Этот порт назначен Linux и может использоваться для доступа к клавиатурам, картам памяти, флеш-накопителям и другим устройствам памяти с правильно установленными драйверами. USB2: Этот порт назначен контроллеру PACS (программируемый контроллер автоматизации) времени выполнения LAN: Порты LAN используются для настройки пакетов связи на предприятии и резервирования горячего резерва, где для этой цели используются два групповых порта LAN3. Они обеспечивают высокоскоростную связь синхронизации данных между двумя ЦП. Подключите верхний порт LAN3 основного ЦП к верхнему порту LAN3 вторичного ЦП и подключите нижний порт LAN3 основного к нижнему порту LAN3 вторичного. Передняя панель LAN: -LAN-1: Этот порт некоммутируемый и подключается к самому верхнему разъему RJ45. -LAN-2: Подключается к двум средним разъемам RJ45 и может переключаться внутри. -LAN-3: Подключается к двум нижним разъемам RJ45, эти порты также могут переключаться внутри, этот порт используется для обеспечения горячего резервирования системы. Нижняя сторона LAN: -RJ45: Этот порт поддерживает протокол последовательного ввода-вывода, также этот порт назначен самой системе Linux. Скорость и исправность порта LAN очень важны для правильной связи, давайте посмотрим на верхние и нижние индикаторы порта LAN и значение этих индикаторов. Порты LAN-статус (верхняя индикация): зеленая индикация: установлено соответствующее соединение, мигающий зеленый: обнаружен трафик, выключен, нет соединения. Порты LAN-скорость (нижняя индикация): зеленый горит: скорость передачи данных 1 Гбит/с или 100 Мбит/с, выключен: скорость передачи данных в сети 10 Мбит/с См. рисунок ниже, чтобы понять индикацию для портов LAN. Рис. 3 Другие порты, доступные на нижней стороне ПЛК RJ45: это последовательный COM-порт, к которому мы можем подключить канал связи с разъемом RJ45, мы можем использовать этот порт для прямого подключения Ethernet или мы можем подключить Modbus или последовательный канал связи с помощью преобразователя TCP IP (последовательный в Ethernet). Обратите внимание, что разъем RJ поставляется с 8 контактами и подключается с помощью проводов, которые объединены в витую пару, эта витая пара помогает уменьшить перекрестные помехи и устранить электромагнитные помехи. Ниже представлены порты на нижней стороне ПЛК (рис.4) Рис. 4 Порт дисплея: это порт видеодисплея, мы можем использовать этот порт для передачи видео и звука одновременно или по отдельности. DP может передавать сигнал в диапазоне от 144 Гц до 4k. EFA: это порт облака IICS (Informatica Intelligent Cloud Services), это может быть облачный сервис для интеграции и управления данными, с помощью этой платформы вы можете настраивать соединения, создавать пользователей, запускать, планировать и контролировать действия или задачи. EPCSS: Сигнал управления и состояния блока питания, это клеммная колодка с 5 клеммами для проводки. Хотя EPCSS не является обязательным для использования при его использовании, он позволяет контроллеру ПЛК сохранять свое текущее состояние при потере питания. 24DC IN: Трехпроводная клеммная колодка для питания ПЛК 24 В постоянного тока. Давайте посмотрим на сводку всех светодиодных индикаторов на рис. 5 Рис. 5 Итак, это было базовое понимание светодиодных индикаторов и различных портов ПЛК производства GE. -
Тестирование и валидация при разработке ПЛК
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Когда вы разрабатываете программу ПЛК, вам необходимо убедиться, что она протестирована и проверена должным образом, прежде чем показывать ее заказчику. Это связано с тем, что программа ПЛК состоит из множества частей, таких как логика, конфигурация, настройки и т. д. Поэтому необходимо тестировать и проверять каждую часть, независимо от того, какая программа будет работать со сбоями. Если в конфигурации или логике есть ошибки, то система будет работать со сбоями на месте. Чтобы избежать этого, большинство программистов тратят часы на тестирование логики ПЛК, и это очень важный шаг, который они выполняют. В этой статье мы изучим процесс тестирования и валидации при разработке ПЛК. Тестирование и валидация при разработке ПЛК Некоторые моменты, связанные с тестированием и валидацией ПЛК, упомянуты ниже. Соберите заинтересованные стороны на первую встречу, чтобы обсудить объем, цели и требования проекта ПЛК. Сформулируйте цели и критерии приемки как для тестирования, так и для валидации. Выделите ресурсы, включая членов команды, аппаратные и программные инструменты, необходимые для процесса тестирования и проверки. Подготовьте подробные спецификации функционального дизайна (FDS), которые послужат основой для разработки и тестирования программы ПЛК. Разработайте исходные блоки кода и процедуры на основе спецификаций функционального дизайна. Напишите планы тестирования специально для модульного тестирования, указав, что должен выполнять каждый блок и как его тестировать. Выполняйте модульные тесты, следуя планам тестирования и записывая результаты для каждой функции или процедуры. Создайте планы тестирования для интеграционного тестирования, описывая, как различные блоки кода и процедуры будут объединяться и тестироваться как единое целое. Выполняйте интеграционное тестирование, проверяя функциональность всей программы и ее совместимость с другими системами. Разработайте протокол FAT, указав критерии, которым должна соответствовать система, чтобы считаться приемлемой. Проведите FAT на основе протокола FAT в имитируемой среде, чтобы убедиться, что все требования выполнены. Составьте подробные протоколы проверки, которые определяют, как будет проводиться проверка, что будет проверяться и что составляет приемлемые результаты. Просмотрите протоколы валидации и получите одобрение от отдела контроля качества и других заинтересованных сторон. Внедрите протоколы валидации, задокументируйте результаты и определите любые отклонения или сбои. Создайте протокол SAT, сосредоточившись на реальной среде, в которой будет работать система ПЛК. Проведите SAT, чтобы убедиться, что система ПЛК надежно работает в предполагаемой рабочей среде. Подготовьте полную документацию по мероприятиям по тестированию и валидации, результатам и любым предпринятым корректирующим действиям. Получите окончательное одобрение от всех заинтересованных сторон, гарантируя, что система ПЛК протестирована и проверена. Настройте процессы для мониторинга производительности системы ПЛК и запланируйте регулярные повторные испытания и повторные проверки. Архивируйте всю документацию и код проекта ПЛК и официально закройте проект. Вышеуказанные шаги представляют собой простое руководство по подготовке тестирования и валидации в новом проекте разработки ПЛК. Давайте рассмотрим некоторые важные шаги один за другим, которые необходимо выполнить до конца для надлежащего функционирования. Сопоставление ввода-вывода ПЛК функционирует в соответствии с входами и выходами. Итак, самый первый шаг в тестировании программы — проверка отображения ввода-вывода в ПЛК. Вам нужно либо принудительно включить каждый цифровой вход в симуляцию, либо предоставить фактический аппаратный ввод в ПЛК. По одному, если отображение правильное, то то же самое будет отражено в вашей графике и программе. Это проверяет цифровые входы. Следуйте тому же процессу для аналоговых входов. Но для аналоговых входов вам нужно указать несколько необработанных счетчиков, а не только один. Широкий диапазон счетчиков дает вам правильное представление о том, правильно ли функционирует канал или нет. Затем, для цифровых выходов, вам нужно принудительно включать их по одному. Если выходы ПЛК включаются и выключаются в соответствии с последовательностью, то ваше отображение DO правильное. Следуйте тому же процессу для аналоговых выходов и укажите широкий диапазон необработанных счетчиков вместо одного счетчика. Вы получите правильное представление о том, правильно ли функционирует канал AO или нет. Проверка протоколов связи После проверки входов-выходов в программе ПЛК следующим шагом будет проверка адресов связи и сетевых адресов. Предположим, что у ПЛК есть порт Ethernet и порт Modbus RTU. Вы подключили HMI к порту Ethernet и три VFD к порту Modbus. Порт Modbus используется для передачи и получения данных с VFD, таких как ток, частота, напряжение и т. д. Эти сопоставления были сделаны вами в логике ПЛК. Сначала вам нужно проверить порт Ethernet, проверив, пингуется ли IP или нет; и взаимодействует ли он с HMI или нет. Затем вам нужно установить связь Modbus и проверить, правильно ли данные передаются с ПЛК или нет. Это полностью очищает вашу аппаратную часть, поскольку теперь вы можете правильно передавать данные в поле; либо через жесткий ввод-вывод, либо через программный ввод-вывод. Эти два основных шага являются первым шагом в вашей проверке. Ручной режим Некоторые системы имеют ручной режим без критических блокировок, а некоторые системы имеют ручной режим с критическими блокировками. Чтобы проверить ручной режим, вам нужно включить каждый выход шаг за шагом и проверить, включается ли фактический физический выход или нет. Этот первый шаг проверяет, были ли физический DO или AO правильно связаны с кнопками ручного режима или нет. Затем вам нужно сгенерировать соответствующие сигналы тревоги и проверить, выключается ли выход или нет. Должны выключаться только связанные выходы. Остальные выходы не должны быть затронуты. Это гарантирует, что все выходы были правильно связаны в программе с надлежащими блокировками. Поскольку после очистки ручного режима будет подтверждено, что физические выходы можно включить вручную, а автоматический режим можно будет проверить более легко. Прямая проверка логики автоматического режима запутает программиста относительно того, какой выход включается или выключается. Проверка ручного режима гарантирует, что отдельные выходы включаются или нет. Автоматический режим Следующий большой шаг — проверка автоматического режима. Автоматический режим представляет собой проверочную последовательность с блокировками. Каждой системе предоставляется документ логики управления, который показывает, как последовательность работает с надлежащими блокировками и выходной матрицей. Программист ПЛК должен гарантировать, что при запуске любой последовательности соответствующие выходы включаются/выключаются соответственно или нет. Кроме того, последовательность работает правильно с блокировками или нет? Логика автоматического режима при создании должна быть в основном разделена на четыре части Включение выходов, Написание потока последовательности, Связывание блокировок и сигналов тревоги и Отображение текущего состояния работы. Этот метод делает поток программы очень простым для просмотра и устранения неполадок. Следует стараться избегать постоянного использования катушек установки-сброса и релейной логики. Релейная логика проста в использовании, но при запуске в режиме онлайн-симуляции она требует времени на устранение неполадок. Кроме того, катушки установки-сброса трудноуправляемы, поскольку после использования катушки установки необходимо позаботиться о ее сбросе где-то. В противном случае бит останется установленным, если условие не записано должным образом. Таким образом, мы увидели процесс тестирования и проверки при разработке ПЛК. -
Управление скоростью асинхронного двигателя с использованием аналогового выхода ПЛК
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Возможность управления скоростью асинхронного двигателя существует только с частотно-регулируемыми приводами. По сути, существует три различных режима, с помощью которых мы можем управлять скоростью асинхронного двигателя. Использование цифрового сигнала Использование аналогового сигнала от 0 до 10 В / от 0 до 5 В / от 4 до 20 мА / от 0 до 20 мА и т. д. Использование связи Modbus в режиме RTU или режиме TCP/IP Скорость асинхронного двигателя В этой статье мы будем использовать аналоговый входной сигнал с диапазоном от 0 до 20 мА для управления скоростью двигателя. В этой статье показано, как управлять скоростью двигателя с использованием аналогового выхода ПЛК. См. схему ниже, чтобы получить общее представление. Чтобы изменить скорость двигателя, аналоговый выходной сигнал 0–20 мА от ПЛК отправляется на аналоговый входной терминал VFD. Скорость изменяется от 0 до 50 Гц по мере увеличения миллиампер от 0 до 20. В этой теме мы используем шесть уникальных точек аналогового выхода интеллектуального ПЛК S7 200 для управления скоростью шести двигателей. (каждый двигатель имеет индивидуальный VFD в соответствии с номиналом двигателя). Здесь в качестве ПЛК используется Siemens CPU ST60 серии S7 200 Smart с двумя соединенными с ним аналоговыми выходными модулями EM AQ04, в то время как модель VFD — это серия ATV310 Schneider Electric. Siemens ЧМИ взаимодействует с CPU ST60 для изменения скорости двигателей с его экрана. Перед логикой ПЛК см. конфигурацию оборудования и подробности подключения ниже: Указанные выше аналоговые выходные модули добавляются к CPU ST60. Каждая аналоговая входная точка VFD будет получать сигнал 0–20 мА от различных аналоговых выходных точек ПЛК. Теперь рассмотрим параметры привода VFD ATV310. 401: 01 (опорный канал 1) 204,0: 0A (тип AI1) 204,1: 4 мА (параметр масштабирования тока AI1 0%) 204,2: 20 мА (параметр масштабирования тока AI1 100%) Помимо этого, параметры двигателя необходимо установить в группе № «300» в соответствии с номиналом двигателя. Аналоговый выходной модуль также называется модулем DA или цифро-аналоговым модулем. Согласно этому утверждению, цифровое значение преобразуется в миллиамперы или напряжение в соответствии с настройкой конфигурации. Различные ПЛК имеют различные цифровые значения, которые можно преобразовать в аналоговый сигнал напряжения или миллиампер. В серии Siemens S7 200 используется 0 для 0 миллиампер и 27648 для 20 миллиампер. В соответствии с номером параметра «204.1» мы должны определить цифровое значение, при котором выходная точка выдает около 4 мА. Используя метод «hit-and-miss», мы определили значение как «5559», при котором мы получили приблизительно 4 миллиампера. Согласно обсуждению выше, частота будет где-то между 0 и 50 Гц, а миллиамперы в ПЛК представлены в виде цифровых значений. Когда определенная частота подается с ЧМИ, требуется некоторое масштабирование для получения фактической частоты. Таким образом, мы можем назвать эти цифровые значения «немасштабированными» значениями. Теперь, чтобы изменить эти немасштабированные значения на масштабированные, есть формула ниже: OSH = 27648,0 (немасштабированное цифровое значение для выходного аналогового сигнала 20 мА) OSL = 5559,0 (немасштабированное цифровое значение для выходного аналогового сигнала 4 мА) ISL = 0 (нижний предел выходной частоты в Гц) ISH = 50 (верхний предел выходной частоты в Гц) «Вход» — это переменная для установки скорости двигателя с ЧМИ. «Выход» — это масштабированное цифровое значение Теперь подставим эти значения в формулу и оценим дальше: Выход = [(27648,0 – 5559,0) *(Вход – 0)/ (50 – 0)] + 5559,0 Выход = [22089,0*Вход /50] + 5559,0 Выход = [441,78*Вход] + 5559,0 Перед оценкой уравнения в релейной логике пройдите настройки конфигурации аналогового выхода в программном обеспечении ПЛК ниже: На шаге 7 программного обеспечения MicroWin Smart щелкните выделенную опцию настроек системного блока, доступную в панели «дерева проекта». В настройках системного блока настройте все каналы первой платы AQ04 и 3-й и 4-й каналы второй платы AQ04 с выделенным типом тока. Программирование ПЛК для управления скоростью асинхронного двигателя с использованием аналогового выхода Сеть 1: VD200 хранит входное значение или значение переменной, которое задается с ЧМИ в виде частоты или Гц. Затем оно умножается на 441,78 и сохраняется в VD204. Затем значение в VD204 добавляется к 5559 и сохраняется в VD208. Значение в VD208 представляет собой оцененное масштабированное выходное значение в реальном формате. Дробная часть значения в VD208 отбрасывается, а целая часть числа сохраняется в VD276 в формате двойного целого числа с помощью инструкции «TRUNC». После этого MW4 сохраняет это двойное целое число в формате целого числа. Адрес для первого канала модуля AQ04, AQW16, — это то место, куда теперь передается это значение. Пример: если VD200 = 41,5 Гц подается с ЧМИ, то VD208 = [441,78*41,5] + 5559,0 = 23892,87. Таким образом, чтобы достичь 41,5 Гц, 23892 должно быть сохранено в MW4 в виде целого числа. Согласно сетевому комментарию, первый канал используется для изменения скорости двигателя (Loader) в одном из приложений. Аналогично, сети 2–6 созданы для изменения скорости других двигателей и вентиляторов из соответствующих каналов модулей EQ04, использующих VD212, VD224, VD236, VD248 и VD260 в качестве своих точек переменной скорости. Согласно соединениям проводов, второй модуль EQ04 использует третий и четвертый каналы; в результате используются адреса AQW36 и AQW38. Чтобы узнать больше, см. Конфигурация системного блока. -
Лучшие практики электропроводки ПЛК – программируемый логический контроллер
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Лучшие практики электропроводки ПЛК (программируемый логический контроллер) необходимы по нескольким причинам в системах промышленной автоматизации и управления. В областях производственных операций, производства и производства энергии, а также в широком спектре промышленных секторов основные компоненты ПЛК помогают регулировать и контролировать различные процессы. Лучшие практики электропроводки ПЛК Изображение предоставлено: Yeulian Вот несколько основных причин, по которым важна правильная электропроводка ПЛК. Короче говоря, она обеспечивает надежность, безопасность, точность, обслуживание, масштабируемость, соответствие требованиям, экономическую эффективность и документирование. Какие практики приняты для электропроводки ПЛК? Электропроводка ПЛК (программируемый логический контроллер) является основополагающей частью установки и ввода в эксплуатацию автоматизированных систем управления. ПЛК используются для управления различными промышленными процессами и машинами. Проводка соединяет ПЛК с датчиками, исполнительными механизмами и другими устройствами на заводе. Она обеспечивает точную передачу сигналов от ПЛК, позволяя ему взаимодействовать с оборудованием. Вот несколько важных правил, которые следует соблюдать при подключении ПЛК: Планирование Перед началом подключения важно иметь четкий план компоновки. Он должен включать компоненты, устройства ввода/вывода (I/O) и расположение ПЛК в шкафу или электрической панели. Чертеж проводки Убедитесь, что у вас есть обновленная (пересмотренная) копия электрической схемы. Выбор подходящих кабелей Используйте качественные кабели, которые соответствуют необходимым электрическим характеристикам. Убедитесь, что они достаточно длинные и имеют достаточную токовую нагрузку, чтобы избежать проблем с передачей сигнала и перегрева. Идентификация Четко маркируйте все кабели, разъемы и клеммы. Это упрощает устранение неисправностей, техническое обслуживание и будущее расширение. Маркировка позволяет легко идентифицировать каждый кабель, разъем и клемму в системе. Маркировка помогает поддерживать целостность системы управления. Ошибочное подключение кабелей или клемм может привести к повреждению оборудования, сбоям в работе системы или даже рискам для безопасности. Правильная идентификация снижает вероятность ошибок во время установки или обслуживания. Прочные соединения Обеспечивайте надежные и безопасные соединения, затягивая клеммы, чтобы предотвратить ослабление соединений, которое может привести к сбоям. На промышленных предприятиях центр города может быть чрезвычайно дорогим. Слабые соединения вызывают неожиданные отключения оборудования или сбои в работе, что приводит к задержкам производства и финансовым потерям. Разделение питания и сигнала Сохраняйте достаточное разделение между силовыми кабелями и сигнальными кабелями, чтобы избежать электромагнитных помех. При необходимости используйте желоба или разделители для физического разделения кабелей. Это может помочь предотвратить перекрестные помехи и снизить вероятность помех. Тестирование и проверка Перед включением системы ПЛК необходимо провести испытания на непрерывность и проверку. Это необходимо для того, чтобы убедиться, что все компоненты подключены правильно и в соответствии с проектными спецификациями. Неправильные соединения могут привести к сбоям, неэффективности или повреждению оборудования. Безопасность При электромонтаже соблюдайте правила электробезопасности. Перед началом работы с проводкой убедитесь, что ПЛК и все компоненты отключены. Документация Сохраняйте подробные записи обо всех проводах, включая актуальные схемы, списки проводов и документацию по конфигурации. Это будет полезно для будущего обслуживания и будущих модификаций системы. Обучение Убедитесь, что персонал, который эксплуатирует и обслуживает систему, обучен проводке и работе ПЛК. Соответствие нормативным требованиям Убедитесь, что проводка ПЛК соответствует применимым стандартам. Правильная проводка необходима для обеспечения надежной и безопасной работы системы, управляемой ПЛК. Проводка ПЛК имеет решающее значение для надежности, безопасности, точности и ремонтопригодности промышленной системы управления. Правильная проводка гарантирует, что система управления функционирует должным образом и соответствует отраслевым стандартам и правилам, в конечном итоге способствуя общей эффективности и успеху промышленного процесса. Почему важна правильная проводка ПЛК? Правильная проводка ПЛК (программируемого логического контроллера) необходима в системах промышленной автоматизации и управления технологическими процессами по нескольким важным причинам: Правильная проводка обеспечивает надежность системы. Правильная проводка обеспечивает прочное и стабильное кабельное соединение между компонентами системы, снижая вероятность периодических сбоев или ошибок связи. Она обеспечивает безопасность. Неправильная проводка может привести к коротким замыканиям, перегрузкам и электрическим опасностям. Правильная проводка сводит к минимуму вероятность электрических аварий и гарантирует, что система соответствует стандартам безопасности. Она улучшает производительность системы: Неправильная проводка может негативно повлиять на производительность системы, вызывая задержки в связи и выполнении инструкций. Правильная проводка обеспечивает быструю и точную передачу данных. Правильная проводка сокращает время простоя и расходы на обслуживание. Она помогает нам выполнять более простое обслуживание: тщательная организация и маркировка кабелей облегчат выявление и устранение проблем в системе. Соответствие нормативным требованиям: во многих отраслях некоторые особые правила и стандарты требуют правильной проводки для обеспечения безопасности и качества системы. Советы по проводке ПЛК Здесь мы поделились основными моментами, связанными с проводкой ПЛК. Соблюдайте национальные и местные электротехнические нормы. Используйте экранированные кабели для аналоговых и коммуникационных сигналов. Обеспечьте надлежащее заземление всех компонентов. Маркируйте все провода и клеммы. Внедрите схему цветовой кодировки проводов. Отделите входную проводку от выходной. Используйте кабели минимально возможной длины. Избегайте наматывания проводов вокруг винтов клемм. Выбирайте соответствующие калибры проводов в соответствии с требованиями нагрузки и тока. Используйте наконечники для многожильных проводов. Физически разделяйте высоковольтные и низковольтные провода. Дважды проверяйте полярность для подключения питания и ввода-вывода. Аккуратно связывайте провода и используйте кабельные стяжки. Проверьте целостность проводов и правильность соединений перед включением питания. Ведите актуальную и подробную документацию. Используйте клеммные колодки для облегчения обслуживания. Проводите регулярные проверки проводки. Используйте механизмы снятия натяжения для защиты проводов. Соблюдайте процедуры блокировки/маркировки для обеспечения безопасности. Проводите тщательное тестирование системы после завершения электропроводки. -
Этапы ввода в эксплуатацию на месте для программистов ПЛК
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Всякий раз, когда новый программист ПЛК отправляется на место для ввода в эксплуатацию проекта, первым вопросом, который возникает, является то, как это сделать. Это связано с тем, что система ПЛК обширна и сложна для понимания. Поэтому каждый программист ПЛК должен знать, что делать, когда он отправляется на место с надлежащим планированием. При таком большом количестве электрических полевых проводов и устройств необходимо понимать, что он делает, а также логику программы ПЛК. В этой статье мы изучим этапы ввода в эксплуатацию, которым должен следовать программист ПЛК. Этапы ввода в эксплуатацию на месте для программистов ПЛК Самый первый шаг для программиста ПЛК — проверить, установлено ли на его ноутбуке все необходимое программное обеспечение ПЛК. Предположим, на объекте в системе установлена автоматизация Schneider. Затем, во-первых, ему нужно установить все соответствующее программное обеспечение ПЛК на свой ноутбук. Программное обеспечение должно открываться правильно каждый раз, и все связанные с ним драйверы также должны правильно реагировать. После этого ему нужно подключить свой ноутбук к оборудованию автоматизации в своем офисе. Это гарантирует, что он сможет правильно загружать и скачивать данные в системе. Неправильная установка программного обеспечения или подключение могут привести к ошибкам при вводе в эксплуатацию на объекте. Затем ему нужно сделать последнюю резервную копию на своем ноутбуке и проверить логику ПЛК с помощью моделирования. Это гарантирует, что он отправится на объект, понимая весь процесс. После этого возьмите с собой все кабели связи и приготовьтесь отправиться на объект. Если выяснится, что из-за ограничений по времени система не проверяется полностью, запишите ожидающие проверки точки и логические ошибки, обнаруженные во время тестирования. Убедитесь, что это проверено при вводе в эксплуатацию. Когда он прибудет на объект, сначала осмотрите состояние завода. Сколько механических работ еще предстоит выполнить, сколько электрических работ еще предстоит выполнить; это самое важное. Также проверьте состояние таких коммуникаций, как вода, воздух и пар. Запишите все состояния и составьте список ежедневных действий на своем ноутбуке. Поделитесь этим файлом со своим непосредственным руководителем, чтобы он знал, где застряла работа, и мог соответствующим образом подтолкнуть соответствующего человека к выполнению работы. После того, как панель будет передана для тестирования, начните проверять полевые входы/выходы. Согласно списку входов/выходов и схеме электропроводки, соответствующее полевое устройство должно работать соответствующим образом. Запишите все обнаруженные проблемы и свяжитесь с электриком для их устранения. Если в системе ПЛК есть устройства связи, вы также должны их проверить. Все устройства связи должны иметь возможность правильно взаимодействовать по сетевой шине с системой автоматизации ПЛК. После проверки полевой проводки необходимо проверить, работают ли все механические устройства в соответствии с проводкой или нет. В конечном итоге, важен ход процесса, и если устройство не отвечает, то процесс не будет работать должным образом. После завершения всей части проверки устройств следующим шагом является проверка логики с инженером-технологом. Необходимо проверить, работает ли установка в соответствии с написанной логикой или нет. Если обнаружены проблемы, проверьте, можно ли их решить с помощью логики или их должен решить инженер-технолог. Придите к выводу и решите его. Это завершает вашу деятельность по вводу в эксплуатацию ПЛК. Сохраните все окончательные резервные копии и передайте их своему руководителю для безопасности. Также запишите все окончательные параметры процесса и снимите видео работающего завода для понимания. Составьте окончательный отчет и получите его подпись от заказчика для подтверждения того, что ввод в эксплуатацию был выполнен. Запишите все его замечания и проследите, чтобы они были решены как можно скорее. Этапы ввода в эксплуатацию ПЛК Основные этапы ввода в эксплуатацию ПЛК указаны ниже с краткими подробностями. Просмотр документации: проверьте системные требования и схемы. Проверки безопасности: проверьте блокировку/маркировку и другие протоколы безопасности. Проверка оборудования: осмотрите модули ПЛК и ввода-вывода на наличие повреждений. Включение: включите ПЛК и подтвердите основные функции. Установление связи: настройте связи между ПЛК и программным терминалом. Обновление прошивки: при необходимости установите последнюю версию программного обеспечения ПЛК. Настройка ввода-вывода: настройте модули ввода и вывода. Загрузка программы: загрузите исходный код ПЛК в систему. Режимы тестирования: проверка отдельных входов, выходов и связи. Проверки контуров: проверка целостности сигнала между полевыми устройствами и ПЛК. Логическое тестирование: проверка функций и последовательностей ПЛК. Моделирование: проверка сложной логики с использованием смоделированных входов. Запуск процесса: начало начального тестового прогона процесса. Тонкая настройка: настройка ПИД-регулятора, таймеров, счетчиков и уставок на основе тестовых прогонов. Обновление документации: запись изменений, внесенных во время ввода в эксплуатацию. Функциональные тесты: проверка того, что вся система работает так, как ожидалось. Обучение операторов: обучение операторов использованию новой настройки. Создание резервной копии: сохранение окончательной программы ПЛК и параметров конфигурации. Одобрение клиента: получите одобрение от клиента или менеджера проекта. Передача: завершите документацию для передачи системы. Таким образом, мы увидели этапы ввода в эксплуатацию, которые должен выполнить программист ПЛК. -
Что такое таблица инструкций программирования ПЛК?
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Программирование ПЛК имеет пять типов языков – релейная логика, список инструкций, структурированный текст, функциональная блок-схема и последовательная блок-схема. Каждый тип языка ПЛК имеет свои собственные достоинства и недостатки. Хотя некоторые языки выглядят хорошо визуально и просты в устранении неполадок, другие языки имеют меньшее потребление памяти и более высокую скорость обработки. Одним из самых основных используемых языков ПЛК является список инструкций. Он не так известен, как другие языки, и используется только несколькими программистами ПЛК из-за устаревшей технологии, но все еще доступен почти во всем программном обеспечении производителей ПЛК. В этой статье мы рассмотрим концепцию языка списка инструкций в ПЛК. Что такое список инструкций? Программа ПЛК, написанная на языке списка инструкций, состоит из ряда инструкций, которые последовательно выполняются логическим контроллером. Каждая инструкция представлена одной строкой программы и состоит из следующих компонентов: Номер строки Текущее значение (только в режиме онлайн) Оператор инструкции Операнд(ы) Необязательный комментарий По сути, если вы видели традиционный язык ассемблера, используемый в микропроцессорах, то вы легко поймете этот язык. Его также можно назвать смесью релейной логики и структурированного текста. Релейная логика в том смысле, что инструкции должны быть написаны линейным образом, и структурированный текст в том смысле, что мнемоники используются в словах. Для большего понимания обратитесь к изображению ниже. На первом изображении показана логика ПЛК, написанная на релейном языке. Логика такова: %M3 включится, если включен %M0 и включен %M1 или включен %M2. Теперь обратитесь к логике ниже для списка инструкций. Вы можете видеть, что каждая строка имеет только один компонент: в первой строке есть %M0, а во второй строке есть %M1, выполняющий логику И со следующей строкой. Третья строка содержит %M2, выполняющий логику ИЛИ с предыдущей строкой, четвертая строка закрывает команды, а пятая строка включает выход %M3. Таким образом, это представление как релейной логики, так и структурированного текста. Компоненты списка инструкций Основные компоненты списка инструкций ПЛК указаны ниже. Номер строки — четырехзначные номера строк генерируются при создании новой строки программы и автоматически управляются программным обеспечением. На рисунке выше это можно увидеть как от 0000 до 0004. Текущие значения — в режиме онлайн вы можете видеть текущие значения каждого элемента, как показано на рисунке ниже. На изображении ниже во время онлайн-анимации это указано как истина или ложь. Операторы инструкций — этот оператор является типом команды для выполнения инструкции. Его также можно назвать входной и выходной стороной записанной логики. Это мнемонический символ, который используется для обозначения типа команды, которая должна быть выполнена на стороне выхода, а также того, как сторона выхода будет ее выполнять. Например, на изображении выше LD обозначает загрузку, которая начинает выполнение путем загрузки значения первого бита, AND/OR обозначает логические инструкции, а ST обозначает сохранение значений результата в бите назначения. Комментарий — это необязательно. Он позволяет программисту написать любой комментарий, который поможет ему легко устранить неполадки в логике. Список инструкций в программировании ПЛК Некоторые из списка инструкций ПЛК указаны ниже. LD — загружает логическое значение операнда в аккумулятор. LDN — загружает инвертированное логическое значение операнда в аккумулятор. LDR — загружает логическое значение операнда в аккумулятор, когда значение изменяется с 0 на 1 (нарастающий фронт). LDF — загружает логическое значение операнда в аккумулятор, когда значение изменяется с 1 на 0 (падающий фронт). AND — выполняет операцию AND между предыдущим результатом и текущим операндом. ANDN — выполняет операцию AND между предыдущим результатом и инверсией текущего операнда. ANDR — выполняет операцию AND между предыдущим результатом и нарастающим фронтом текущего операнда. ANDF — выполняет операцию AND между предыдущим результатом и спадающим фронтом текущего операнда. OR — выполняет операцию OR между предыдущим результатом и текущим операндом. NOT — выполняет обратную операцию операнда. ST — принимает значение сгенерированного результата. STN — принимает обратное значение сгенерированного результата. S — выполняет операцию установки операнда. R — выполняет операцию сброса операнда. Помимо этого, в нем есть и другие инструкции, такие как переход, подпрограмма, конец, И с, ИЛИ с и т. д. в зависимости от производителя ПЛК. Таким образом, мы увидели концепцию списка инструкций в программировании ПЛК. -
Инструменты, необходимые программисту ПЛК для переноски на объект
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
Всякий раз, когда программист ПЛК посещает объект для ввода в эксплуатацию или для какого-либо сервисного обслуживания, он должен знать, какие инструменты ему необходимо иметь с собой, прежде чем приступить к работе. Это связано с тем, что большинство объектов находятся очень далеко, и не все материалы будут легко доступны, если их забыть взять с собой. Поэтому, если он проявит должную осторожность и возьмет с собой необходимые материалы, то он сможет легко выполнить свою работу. Обычно возникает много путаницы, когда программисты читают список дел; поэтому я подумал упомянуть его просто, чтобы они могли быстро его понять. Инструменты программиста ПЛК Основные инструменты, необходимые программисту ПЛК, перечислены ниже. Ноутбук с установленным программным обеспечением ПЛК Кабели интерфейса USB-ПЛК Кабели Ethernet Набор отверток Электрические тестеры (мультиметр) Инструменты для зачистки проводов Кусачки Отвертка для клеммной колодки Электролита Портативный жесткий диск или USB-флеш-накопитель Обжимной инструмент RJ45 Последовательные преобразователи (RS232 в USB и т. д.) Инструменты настройки IP (опционально) Изготовитель этикеток для маркировки проводов Промышленный коммутатор Ethernet Калибратор контура для аналоговых сигналов Изолированные плоскогубцы Блокнот и ручка для документации Портативный принтер для этикеток на месте Антистатический браслет Примечание: необходимые инструменты могут различаться в зависимости от конкретной марки ПЛК, модели и характера работ на месте. Всегда обязательно носите с собой необходимые средства индивидуальной защиты (СИЗ). В этой статье мы рассмотрим инструменты, которые программист ПЛК должен брать с собой на объект. Правильный ноутбук Это первое и самое главное базовое требование. Плохой ноутбук с неисправным экраном/оборудованием или низкой производительностью ОЗУ или малым объемом памяти может сильно затруднить работу программиста. На ноутбуке, которым пользовался программист, должно быть все необходимое программное обеспечение. Любое неправильно установленное программное обеспечение может очень сильно нарушить его работу. Все его порты связи должны работать исправно. Зарядное устройство для ноутбука должно быть исправным. Кроме того, сетевые адаптеры, такие как Wi-Fi, должны работать исправно. Кабели для программирования Когда программист ПЛК отправляется на объект, он, по сути, подключается к какому-то устройству автоматизации. Для этого все необходимые кабели для программирования должны быть с ним. Он должен проверить эти кабели в офисе перед тем, как отправиться на объект. Например, если у ПЛК есть порт USB, порт LAN и порт RS485, то он должен как минимум носить с собой кабели USB и LAN, которые легко доступны. Носить с собой только один кабель рискованно. Флешка / Портативный жесткий диск Внешнее хранилище является обязательным требованием, поскольку оно может потребоваться вам в любое время для передачи файлов или хранения резервных копий. В хранилище должно быть достаточно свободного места для хранения данных, когда это необходимо. В настоящее время многие устройства автоматизации поставляются с портом USB (флешка); поэтому его ношение является дополнительным преимуществом для безопасности, если кабели не работают. Мышь На месте программисты ПЛК большую часть времени сталкиваются с необходимостью выполнять задачи вовремя. Работа с сенсорными панелями ноутбуков отнимает много времени. Кроме того, графическое проектирование становится напряженным с сенсорной панелью ноутбука. Поэтому ношение с собой USB-мыши помогает им очень легко выполнять задачу. Набор отверток Отвертка является очень важным инструментом для программиста ПЛК. Если на объекте возникнут какие-либо проблемы с проводкой или если электромонтёру понадобится его дополнительная помощь, то отвёртки разных размеров будут очень полезны. Кроме того, программист ПЛК может самостоятельно работать с некоторыми электропроводками без посторонней помощи, чтобы быстро решить любую проблему. Инструмент для зачистки проводов Подобно отвёрткам, инструменты для зачистки проводов также играют важную роль. Если внезапно возникает необходимость в большом количестве проводки, то программист ПЛК может самостоятельно сделать это, просто зачистив концы проводов и выполнив требуемую проводку. Сетевое подключение Поскольку программист ПЛК может много раз требовать доступ к онлайн-поддержке, необходимо, чтобы на SIM-карте было достаточно данных, а скорость должна быть достаточно хорошей для их поддержки. Обычно также есть вероятность, что ваша SIM-карта будет иметь ограниченный доступ к объекту. В этом случае воспользуйтесь помощью местных инженеров для их данных или, что ещё лучше, вы можете носить с собой сетевой ключ для оптимального использования. Стационарные предметы Было бы хорошо, если бы программисты ПЛК носили с собой канцелярские предметы, такие как блокноты, ручки, маркеры и т. д., для своих письменных целей. Зачастую написание чего-либо во время работы помогает программистам помнить о вещах в стрессовых условиях. Кроме того, поскольку существует постоянное давление со стороны клиентов, требующих выполнения работы, написание вещей облегчает работу программистов. Таким образом, мы увидели необходимые инструменты, которые программист ПЛК должен носить с собой на объекте. -
SCHNEIDER-RU Модуль CRA в ПЛК Schneider – Модуль адаптера удаленного ввода-вывода
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
В промышленной автоматизации существуют ситуации, когда приборы ввода-вывода расположены очень далеко от панели, и их невозможно подключить к локальному ПЛК из-за большого расстояния. По этой причине доступны модули удаленного ввода-вывода, которые просто обмениваются данными этих вводов-выводов с основным ПЛК. Это упрощает связь, а также обеспечивает гибкость для инженеров по приборам, позволяя размещать прибор в любом месте, где это необходимо. Модуль адаптера удаленного ввода-вывода Связь между удаленным адаптером и основным ПЛК в основном осуществляется через Ethernet, что является самым быстрым и эффективным способом связи. Такие модули удаленного ввода-вывода доступны во многих марках ПЛК. Из них Schneider Electric является такой маркой, и в ней доступен модуль BMXCRA или BMECRA для использования. В этой статье мы рассмотрим концепцию модулей CRA в ПЛК Schneider. Модуль CRA в Schneider ПЛК Изображение: BMXCRA31210, модуль Modicon X80 RIO CRA — это модуль адаптера удаленного ввода-вывода в линейке автоматизации Schneider ПЛК. Он не имеет ЦП для записи логики; это просто коммуникатор данных. Он принимает значения ввода-вывода и непрерывно обновляет их в главном ЦП. Модуль работает по протоколу Ethernet IP. Он имеет три порта LAN для работы. Помимо стандартных значений ввода-вывода, модуль также предоставляет различные типы диагностики для устранения неполадок. Это помогает программистам более гибко писать логику. Например, у вас есть три модуля ввода-вывода на очень большом расстоянии от ЦП. Затем просто настройте эти три модуля в модуле CRA в программном обеспечении; и CRA затем будет использовать его для передачи данных с ЦП. Конфигурация модуля На модуле есть два поворотных переключателя. Они определяют идентификатор модуля. Например, в системе используется 4 модуля CRA. Все четыре расположены на большом расстоянии друг от друга. Затем каждому модулю необходимо присвоить отдельный идентификатор, чтобы его можно было легко различить с помощью логики ЦП. Кроме того, IP-адрес модуля устанавливается в программе ЦП. В модуле CRA нет конфигурации. Просто правильно настройте IP-адреса в логике ПЛК для модулей CRA, установите идентификатор поворотными переключателями, и ваши модули CRA начнут работать соответствующим образом. В модуле есть четыре светодиода для устранения неполадок — Run, IO, Module status и Network status. Подробное описание модуля см. в каталоге. Коммуникационный модуль ПЛК Schneider Модуль поддерживается только в линейке M580 и Quantum ПЛК Schneider. Интересной особенностью этого модуля является то, что он имеет большое количество коммуникационных служб, таких как агент SNMP, клиент SNTP, клиент FDR, клиент FTP, клиент TFTP, клиент DHCP, явные сообщения CIP и качество обслуживания. Все это является частью функций кибербезопасности и помогает защитить модуль от кибератак. Модули CRA полностью избыточны. Это зависит от того, как вы организуете сеть системы. Уровень избыточности зависит от того, как вы подключаете провода и как вы выбираете топологию. Исходя из этого, вы можете безопасно управлять логикой, не опасаясь потери данных ввода-вывода. Например, у вас есть два модуля CRA и вы хотите избыточность ввода-вывода. Исходя из поддерживаемой им топологии, вы можете спроектировать сеть таким образом, что если один порт LAN первого модуля CRA выйдет из строя, то вы сможете передавать данные через второй порт LAN на второй модуль CRA, а затем на главный ПЛК. Доступны различные варианты маршрутизации. Таким образом, мы увидели концепцию модуля CRA в ПЛК Schneider. -
ALLEN BRADLEY-RU Одноразовые инструкции по нарастающему и спадающему фронту в ПЛК Rockwell
xiangjinjiao posted A plc and hmi russian article in PLC programming learning
В любом ПЛК важно понимать, как написаны его инструкции. Основное понимание одинаково во всех языках; разница в том, как это проиллюстрировано. Если мы разберемся с инструкциями, то сможем работать с любым типом программного обеспечения ПЛК. Одним из наиболее широко используемых брендов в автоматизации является Rockwell. В нем есть много различных типов инструкций для программирования. При этом есть две инструкции, которые в основном требуются в любой логике ПЛК. Это — One-shot Rising Edge и One-shot Fall Edge. В этой статье мы рассмотрим работу этих двух инструкций. Один выстрел восходящего фронта (OSR) В программировании ПЛК вы, должно быть, слышали два распространенных типа объектов — положительный пик и отрицательный пик. Положительный пик означает, что он принимает триггер только тогда, когда переменная изменяется с 0 на 1. Выход этого объекта поступает в виде импульса триггера. Теперь вместо состояния переменной в ПЛК есть одна дополнительная инструкция, в которой вы получаете выход триггера всей ступени. Это означает, что когда вся ступень или условие меняет свое состояние с 0 на 1, то выход будет поступать в состоянии триггера импульсного типа. Это инструкция триггера с повышением в ПЛК. В ПЛК Rockwell это называется одноразовой инструкцией с повышением фронта. Для понимания обратитесь к изображению ниже. Как вы можете видеть, инструкция принимает два входа в своем состоянии. Оба записаны как логика NO; это означает, что когда оба включены, то только условие является истинным. Теперь, когда это происходит, инструкция имеет две переменные в себе — бит хранения и выходной бит. Функция бита хранения — хранить состояние условия. Когда оба бита включаются и условие меняется с 0 на 1, то бит хранения обновляется как 1 и передает это значение выходному биту. Выходной бит включается на очень короткий промежуток времени, в миллисекундах. Затем этот импульсный выход может использоваться программистом ПЛК в его логике. Пока условие истинно, бит хранения не изменяется. Как только условие становится ложным, бит хранения обновляется на 0. Когда условие снова становится истинным, выходной бит включается как импульс. Это показывает, что эта инструкция очень полезна, когда вы хотите включить выход только импульсом, и этот импульс должен быть сгенерирован только тогда, когда все условие истинно, а не когда одна переменная становится истинной. Однократный спадающий фронт (OSF) Теперь возьмем пример, где требуется предпринять действие, когда система остановлена. Это означает, что когда условие становится ложным из истинного, то должно быть выполнено какое-то действие. И действие должно быть выполнено в триггерном типе; оно не должно быть постоянно включено. Это называется отрицательным пиком. Для выполнения этой функции либо отрицательный пик должен быть взят из переменной, либо отрицательный пик должен быть взят из всего условия, как обсуждалось ранее. Для второго типа в Rockwell ПЛК используется инструкция с однократным спадающим фронтом. См. изображение выше. В звене есть 2 НЕТ условия, и выход этого звена подключен к блоку OSF. Блок имеет два бита — хранение и выход. Бит хранения используется для хранения условия звена. Когда условие становится истинным, бит хранения обновляется до 1. Когда условие становится ложным из истинного, бит хранения обновляется до 0, а выходной бит становится 1 в форме импульса. Цикл повторяется снова, когда условие снова становится истинным. Выходной бит находится в форме импульса и включен в течение очень короткого времени, в миллисекундах. Это показывает, что эта инструкция очень полезна, когда вы хотите включить выход только импульсом, и этот импульс должен быть сгенерирован только тогда, когда все условие становится ложным, а не когда ложной становится одна переменная. Таким образом, мы увидели инструкции одноразового нарастающего фронта и одноразового спадающего фронта в Rockwell ПЛК. -
SIEMENS-ES Tia Portal – Diferentes instancias de llamada a un bloque de funciones
xiangjinjiao posted A plc and hmi article in Spanish in PLC programming learning
En un artículo anterior, analizamos qué es un bloque de funciones FB, cómo funciona en un programa de PLC y cómo crear y utilizar uno. En este artículo, hablaremos sobre las instancias de bloques de datos de diferentes tipos de bloques de funciones en Siemens Tia Portal y cuándo utilizar cada tipo. Contenido: ¿Qué es un bloque de funciones FB? Diferentes opciones de instancias de datos. Instancia única. Instancia de parámetro. Instancia múltiple. ¿Qué es un bloque de funciones? Un bloque de funciones o FB es simplemente un bloque que contiene lógica de código. Utiliza este FB para lograr una funcionalidad específica a través de los fragmentos de código escritos en su interior. Al llamar a un bloque de funciones en su código, se le solicitará que asigne un bloque de datos también llamado instancia de datos para asociarlo con este FB, para guardar los valores de los parámetros del FB. No todos los parámetros dentro de un FB se guardan en la instancia de datos, pero llegaremos a eso más adelante. Al llamar a un bloque de función, tiene 3 opciones diferentes para asociar una instancia de bloque de datos con esta llamada de función. Estas diferentes opciones dependerán de dónde esté llamando a su FB. En pocas palabras, un FB de bloque de función es básicamente un FC de función con una base de datos de bloque de datos dedicada, este bloque de datos se utiliza para almacenar los valores de los parámetros del bloque de función. Diferentes opciones para instancias de datos Tenemos 3 opciones diferentes para una instancia de datos de un bloque de función, estas opciones son: Instancia única. Instancia de parámetro. Instancia múltiple. Las tres instancias de datos de llamada diferentes provienen de los 3 métodos de llamada diferentes: Puede llamar a un FB de bloque de función dentro del OB1 principal, lo que le dará la opción de: Instancia única. Puede llamar al bloque de función FB dentro de una función FC, lo que le dará dos opciones: Instancia única Instancia de parámetro Puede llamar al bloque de función dentro de otro bloque de función, lo que le dará las tres opciones disponibles para crear una instancia de datos Instancia única Instancia de parámetro Varias instancias Instancia de datos única Primero, comencemos por crear un bloque de función FB, como mencionamos antes, creamos un bloque de función haciendo clic en agregar un nuevo bloque y eligiendo el tipo de bloque que queremos. Vea la imagen 1. Imagen 1: creación de un bloque de función FB Ahora, llamemos al FB reutilizable que creamos dentro de nuestro OB1 principal. Vea la imagen 2. Imagen 2: llamada al FB dentro del OB1 principal Como puede ver en la imagen anterior, al llamar a un FB dentro del OB1 principal, se le solicitará que asigne una instancia de datos para asociarla con esta llamada de FB. En este caso, habrá solo una opción, que es la instancia única. Después de elegir una opción de instancia única, se creará un bloque de datos y se asociará con la llamada FB. Ver imagen 3. Imagen 3: instancia única creada La instancia única creada se utilizará para almacenar los valores de algunos de los parámetros FB. Como las entradas, salidas, In Out y parámetros estáticos. No se almacenarán otros parámetros del FB, como la temperatura y las constantes. Ver imágenes 4 y 5. Imagen 4: los datos se guardan dentro de la instancia de datos Imagen 5: los datos se guardan desde el FB a la instancia de datos. Ahora, creemos una lógica simple dentro del FB para ayudarnos a comprender mejor las instancias de datos. Esta lógica agregará un valor constante de 15 a una variable estática y luego moverá el resultado a la salida. Consulte la imagen 6. Imagen 6: Cree una lógica simple Ahora, vuelva al OB1 principal y observe cómo está ahora su llamada FB. Consulte la imagen 7. Imagen 7: Actualice la llamada FB después de cada cambio Cualquier cambio que realice en la lógica dentro del FB, dará como resultado la necesidad de actualizar la llamada del bloque de función, de modo que se puedan aplicar los cambios que realizó. Puede actualizar la llamada del bloque haciendo clic derecho en la llamada FB y presionando la opción de actualización de llamada del bloque o recompilando su código PLC. Consulte la imagen 8. Imagen 8: Actualización de la llamada FB Después de actualizar la llamada del bloque, los cambios que realizó en el código FB se aplicarán y emplearán en la llamada del bloque. Como puede ver en la imagen 9. El FB ahora espera que se proporcione una señal de entrada de tipo bool y el FB dará una salida de tipo int. Imagen 9: las entradas y salidas ahora están asociadas con la llamada del FB Simulemos nuestro código y veamos cómo se comportará el PLC. Vea la siguiente animación que muestra una simulación simple de la lógica del PLC hasta ahora. Como puede ver en la animación, siempre que la señal de inicio sea VERDADERA, la función se ejecutará y la salida seguirá cambiando. Y una vez que la señal de inicio ya no esté disponible, la salida permanecerá en el último valor registrado. El uso de la instancia de datos aquí es que los valores de la variable estática y la variable de salida se guardan dentro de la instancia única, por lo que cuando la señal de inicio regrese nuevamente, la función continuará desde los últimos valores registrados. Nota muy importante Nunca debe utilizar la misma instancia única para dos llamadas diferentes de un FB. Vea la siguiente animación. Como puede ver en la animación, tenemos dos llamadas FB diferentes, pero ambas llamadas están asociadas con la misma instancia única, por lo que incluso cuando la señal start2 era FALSE, el valor Output2 estaba cambiando con Output1. Como esperaría, el cambio en la instancia de datos de la primera llamada también se verá afectado en la segunda llamada porque tienen el mismo bloque de memoria. Vea la imagen 10. Imagen 10: Nunca utilice la misma instancia de datos con diferentes llamadas FB Si utilizó la misma instancia de datos con diferentes llamadas FB, entonces su bloque de función ya no es reutilizable. Incluso si los parámetros de entrada/salida son diferentes para cada llamada FB diferente. Como viste en el último video (animación), ambas llamadas tuvieron los mismos resultados, aunque la segunda llamada ni siquiera tiene una señal de entrada de habilitación. Otra nota muy importante Dijimos antes que si llamas a tu FB desde un FC de nivel superior, tendrás dos opciones para la instancia de datos asociada; estas opciones son la instancia única y la instancia de parámetro. Consulta la imagen 11. Imagen 11: uso de una sola instancia con un FB llamado desde un FC Si eso sucediera y llamas a un FB dentro de un FC, nunca deberías usar una sola instancia para tus FB. Para saber por qué, consulta la imagen 12 Imagen 12: llamar al FC de nivel superior más de una vez Como ves en la imagen 12, cuando llamas al FC de nivel superior en tu lógica más de una vez, no se te pedirá que asignes un bloque de datos, porque los FC no necesitan uno. Pero sabes que hay un FB llamado dentro del FC, este FB tiene una única instancia asociada a él. Entonces, ahora las 3 llamadas FC tienen la misma instancia de datos para la llamada FB. Entonces, tu función FC ya no es reutilizable. ¿Qué hacer? La mejor opción para cuando necesitas llamar a un FB dentro de un FC es usar la instancia de parámetro. Instancia de parámetro Como dijimos antes, si llamaste a un FB dentro de un FC, no deberías elegir la única instancia, sino que la instancia de parámetro es mejor para tus propósitos de reutilización. Una instancia de parámetro guardará la instancia de datos del FB llamado en el área In Out de la interfaz del bloque FC. Permitiéndote ingresar una nueva instancia de datos para cada llamada FC. Vea las imágenes 13 y 14. Imagen 13: Asignar una instancia de parámetro al llamar a un FB dentro de un FC Imagen 14: Cada llamada a un FC necesitará una nueva instancia de datos Como puede ver en la imagen anterior, siempre que llame al FC dentro de su programa, solicitará una instancia de datos para el FB reutilizable dentro del FC. Pero, al usar este método, tendrá que crear la instancia de datos usted mismo. Vea la imagen 15. Imagen 15: Crear una nueva instancia de datos Para crear una nueva instancia de datos, haga lo mismo que para crear un FC o un FB, pero esta vez elija la opción DB. Y asegúrese de seleccionar el tipo de DB para que sea el mismo que el FB llamado. Ahora, su FC se puede reutilizar tantas veces como desee, solo tiene que crear una instancia para cada llamada. Consulte la imagen 16. Imagen 16: Asignar la base de datos a la llamada FC Base de datos de instancias múltiples Una base de datos de instancias múltiples simplemente significa que la base de datos del FB llamado se almacenará dentro de la base de datos del FB de llamada de nivel superior. Esta opción solo está disponible si llama a un FB desde otro FB. Vamos a crear otro FB para usarlo como un FB de nivel superior. Después de crear este HigherLevelFB, llámelo desde el OB1 principal y, por supuesto, la única opción de llamada será una sola instancia como se mostró antes. Consulte la imagen 17. Imagen 17: Llame al HigherLevelFB desde el OB1 principal Ahora, llame al ReutilizableFB desde el HigherLevelFB y elija la opción Multiinstancia. Consulte la imagen 18. Imagen 18: Asignar una base de datos de múltiples instancias Cuando elija la opción de múltiples instancias, la base de datos creada se almacenará dentro de los parámetros estáticos del FB que realiza la llamada. Consulte la imagen 19. Imagen 19: Las instancias se guardan dentro de los parámetros estáticos Puede llamar al FB reutilizable muchas veces; cada vez que lo llame, la instancia múltiple se almacenará dentro del parámetro estático. Consulte la imagen 20. Imagen 20: Llamar al FB reutilizable muchas veces Como puede ver, la instancia de datos del FB de nivel inferior se guardará dentro de la instancia de datos del FB de nivel superior. Es mejor para una mejor estructura del programa y una lógica fácil de leer. Conclusión La creación de bloques de funciones dentro de su código requerirá asociar un bloque de datos con cada llamada al FB que realice en su lógica. Este bloque de datos o también llamado instancia de datos tiene diferentes opciones según el tipo de bloque que esté llamando a tu FB. Ten cuidado al elegir el tipo de instancia de datos, ya que algunas opciones pueden no ser adecuadas para tu caso como mostramos anteriormente. Y a veces esto puede generar problemas en tu lógica y tu función ya no podrá reutilizarse. El uso de múltiples instancias puede ayudar a organizar mejor la estructura de su programa, ya que todos los FB llamados almacenarán sus bases de datos dentro del FB llamador principal. -
¿Qué es un bloque de datos? Bloques de datos globales en PLC
xiangjinjiao posted A plc and hmi article in Spanish in PLC programming learning
Hay diferentes estructuras de bloques disponibles al programar un PLC, estos bloques incluyen FC de funciones, FB de bloques de funciones y DB de bloques de datos. Estos bloques son herramientas muy útiles que puede utilizar para diseñar mejor la lógica de su PLC y hacer que su código sea más legible y fácil de seguir y depurar. En artículos anteriores, analizamos los FC y los FB. En este artículo, analizaremos los DB de bloques de datos, más específicamente el bloque de datos global. Contenido: ¿Qué es un DB de bloques de datos? Tipos de bloques de datos. ¿Qué es un bloque de datos global? ¿Cómo crear un bloque de datos global? Cómo trabajar con bloques de datos globales. Ejemplo de simulación. ¿Qué es un bloque de datos? Un DB de bloques de datos es un área de memoria que se utiliza para guardar los valores de los parámetros que se escriben durante la ejecución del programa de PLC. A diferencia del bloque de código, el DB de bloques de datos contiene solo declaraciones de variables. No tiene redes ni instrucciones como un FC o un FB. La estructura de la base de datos se define por la cantidad de variables que haya declarado dentro del bloque de datos. Tipos de bloques de datos en el PLC Existen dos tipos de bloques de datos: Bloques de datos globales Bloques de datos de instancia Bloques de datos ARRAY Bloques de datos globales Como sugiere el nombre, el bloque de datos global se declara globalmente para toda la lógica del PLC. No se asigna a un bloque de código específico. Puede acceder a los valores de un bloque de datos global desde cualquier bloque de código en cualquier parte de la lógica del PLC. Un bloque de datos global contiene solo etiquetas estáticas. La estructura del bloque de datos global se puede definir libremente. En la tabla de declaración de bloques de datos, declara los elementos de datos que se incluirán en el bloque de datos global. Bloques de datos de instancia El bloque de datos de instancia se asigna directamente a un bloque de función FB, ya sea que este bloque de función esté definido internamente en el PLC como temporizadores y contadores o bloques de función FB definidos por el usuario. La estructura de un bloque de datos de instancia no se puede definir libremente, sino que está determinada por la interfaz del bloque de función. El bloque de datos de instancia contiene exactamente los parámetros y las variables del bloque que se declaran en la interfaz del bloque de función. Sin embargo, puede definir valores específicos de la instancia en el bloque de datos de instancia; por ejemplo, valores iniciales para las variables declaradas. Bloques de datos ARRAY Disponibles solo para CPU S7-1500, los bloques de datos ARRAY son bloques de datos globales que constan de un ARRAY. Este ARRAY puede estar basado en cualquier tipo de datos. Por ejemplo, es posible un ARRAY de un tipo de datos PLC (UDT). El DB no contiene otros elementos además del ARRAY. Debido a su estructura plana, los bloques de datos ARRAY facilitan el acceso a los elementos del ARRAY y su transferencia a los bloques llamados. La sección “Operaciones de movimiento” de la tarjeta de tareas “Instrucciones” ofrece opciones para direccionar DB ARRAY. En este artículo, hablaremos sobre el bloque de datos global y analizaremos los otros dos tipos en artículos separados. ¿Qué es el bloque de datos global? Los bloques de datos se utilizan para almacenar datos del programa PLC. Esto significa que contienen datos variables que utiliza el programa de usuario. Los bloques de datos globales almacenan datos que pueden ser utilizados por todos los demás bloques. El tamaño máximo de los bloques de datos varía según la CPU. Puede definir la estructura de los bloques de datos globales de la forma que desee. También tiene la opción de utilizar tipos de datos PLC (UDT) como plantilla para crear bloques de datos globales. Cada bloque de función FB, función FC u bloque de organización OB puede leer los datos de un bloque de datos global o puede escribir datos en un bloque de datos global. Estos datos permanecen en el bloque de datos incluso después de salir del bloque de datos. Consulte la imagen 1. Imagen 1: Acceso al bloque de datos global Como puede ver en la imagen anterior, se puede acceder a un bloque de datos global desde cualquier bloque de código dentro del programa PLC, mientras que al bloque de datos de instancia solo se puede acceder mediante el bloque de función asociado. Creación de un bloque de datos global Puede crear un bloque de datos global de la misma manera que crea una función FC o un bloque de función FB. Desde el botón Agregar un nuevo bloque al árbol de su proyecto. Vea la imagen 2. Imagen 2: Creación de un bloque de datos global Declaremos algunas variables dentro del bloque de datos global. Para ello, haga clic en Agregar nuevo en la sección Nombre, escriba el nombre de la variable que desee y luego elija el tipo de datos de la variable. Vea la imagen 3. Imagen 3: Declaración de variables en un bloque de datos global Trabajar con un bloque de datos global Declarar una etiqueta. Ya mostramos cómo declarar una etiqueta/variable en la imagen 3. Definir un valor inicial El valor inicial de una etiqueta es un valor definido por usted, que la etiqueta asume después de iniciar la CPU. El valor debe coincidir con el tipo de datos de la etiqueta y no debe exceder el rango del tipo de datos. Vea la imagen 4. La etiqueta toma el valor definido al iniciarse, siempre que no se haya declarado como retentiva. Imagen 4: Definición del valor inicial de las etiquetas Por lo tanto, si establezco el valor de inicio de Tank1Level en cualquier valor distinto de cero, este valor se aplicará la próxima vez que se reinicie el PLC. Ver imagen 5. Imagen 5: Definición de un valor de inicio para las variables Retención de variables en bloques de datos globales Para evitar la pérdida de datos en caso de corte de energía, puede marcar los datos como retentivos. Estos datos se almacenan en un área de memoria retentiva. Las opciones para configurar la retención dependen del tipo de bloque de datos y del tipo de acceso al bloque que se configure. Ver imagen 6. Imagen 6: Opción de retención en bloques de datos globales Como puede ver en la imagen 6, la variable Tank2Level está configurada para que sea un valor retenido, lo que significa que incluso si el PLC se detuvo o hubo un corte de energía, Tank2Level tendrá los mismos datos almacenados cuando el PLC se vuelva a encender. No se restablecerá al valor inicial. Accesibilidad a/desde HMI En un bloque de datos global, puede definir si una variable puede ser visible desde las tablas de etiquetas de HMI o no. También puede definir si esta variable puede leerse o escribirse desde la HMI. Consulte la imagen 7. Imagen 7: Accesibilidad desde HMI La configuración predeterminada para cualquier variable declarada en un bloque de datos global es que se puede acceder a ella, leerla y escribirla desde la HMI. Si desea deshabilitar esta función para una determinada variable, debe desmarcar la opción de accesibilidad para esa variable. Simulación de ejemplo Hasta ahora, creamos un bloque de datos global y declaramos algunas variables dentro. Ahora intentaremos ejecutar una simulación del programa y ver si podemos comprender mejor qué es un bloque de datos global. A continuación, se proporcionan dos simulaciones de PLC. Prueba de los valores iniciales de una variable Vea la siguiente animación que explica el valor inicial de una variable dentro de un bloque de datos global. Animación 1 Explicación de la animación 1: Los valores iniciales de los parámetros de nivel del tanque son cero. Puede ver en el video que la pantalla de simulación los cambia. Cuando se reinicia el PLC, se apaga y se enciende nuevamente, verá que los valores se restablecerán a los valores iniciales, que son cero. Después de eso, los valores iniciales se cambiaron a 500, 32654 y -356 respectivamente, y cuando se reinicia el PLC, los valores se cambiaron a los nuevos valores iniciales. Observe que cuando cambiamos los valores iniciales, tuvimos que descargar nuestra lógica nuevamente al PLC; debe hacer eso cada vez que realice un cambio en su lógica. Probar la opción de retención de variables en la base de datos global Vea la siguiente animación que explica la opción de retención de una variable dentro de un bloque de datos global. Animación 2 Explicación de la animación 2: En primer lugar, notará que la propiedad Retain de Tank2Level ahora está activa. En el video, puede ver que se están modificando los valores de los 3 tanques. Cuando se detiene el PLC y luego se reinicia, Tank1Level y Tank3Level se restablecen al valor inicial, que es 0, pero Tank2Level retiene su valor de -22938 Conclusión Se puede acceder a un bloque de datos global desde cualquier lugar y mediante cualquier bloque que exista en el programa del PLC. Puede declarar tantas variables como desee dentro de una base de datos global. La técnica recomendada es crear bloques de datos separados para las diferentes secciones de su lógica, para que sea muy fácil seguir su lógica. Por ejemplo, un bloque de datos separado para todas las variables que una HMI debe leer o escribir. -
SIEMENS-ES Tia Portal – Acceso a bloques de datos estándar y optimizado
xiangjinjiao posted A plc and hmi article in Spanish in PLC programming learning
En el artículo anterior, hablamos sobre bloques de datos y analizamos los dos tipos diferentes de bloques de datos, el bloque de datos global y las instancias de datos de los bloques de función FB. En este artículo, vamos a analizar qué se entiende por acceso a bloques de datos optimizado y acceso a bloques de datos estándar en Siemens Tia Portal. Contenido: ¿Qué son los bloques de datos estándar y optimizados? Ejemplo de programa simple. ¿Qué son las bases de datos estándar? ¿Qué es el offset? ¿Qué son las bases de datos optimizadas? Ventajas de utilizar bases de datos optimizadas. Conclusiones. ¿Qué es el acceso a bloques de datos estándar y optimizado? En primer lugar, estos no son nuevos tipos de bloques de datos; dijimos que solo tenemos dos tipos diferentes, la base de datos global y la base de datos de instancia. El acceso a bloques de datos optimizado es una característica del bloque de datos. Puede activar o desactivar esta característica desde las propiedades del bloque de datos que ha creado. La función de bloque de datos optimizado solo está disponible para los PLC S7-1200 y S7-1500, no para los S7-300 o S7-400 La configuración estándar para los bloques de datos cuando se trabaja con PLC S7-1200 o S7-1500 es que estén optimizados; si desea un bloque de datos estándar, deberá configurarlo usted mismo. Entonces, ¿qué son los bloques optimizados y los bloques estándar? Para comprender la diferencia, crearemos un programa simple e intentaremos mostrar en qué se diferencia un bloque optimizado de un bloque estándar. Ejemplo de programa simple: En este ejemplo, no crearemos ninguna lógica de PLC ni codificaremos ninguna instrucción, solo crearemos 2 bloques de datos globales, DB1 se llamará OptimizedDB y DB2 se llamará StandardDB. Dentro de ambos bloques de datos, declararemos 4 variables de tipos de datos Bool, Int, Real y Word respectivamente. Vea la imagen 1. Imagen 1: crear dos bases de datos globales Lo primero que notará es que ambos bloques de datos son exactamente iguales, esto se debe a que, como dijimos, la configuración predeterminada al crear un bloque de datos es que se optimizará, por lo que debemos cambiar la configuración de DB2 para convertirlo en un bloque estándar, para ver si algo cambia. Lo hacemos desde las propiedades de ese DB2. Acceda a las propiedades de DB2 haciendo clic derecho en el bloque de datos y presione Propiedades. Vea la imagen 2. Imagen 2: cambiar DB2 al acceso estándar al bloque Una vez que desmarque los atributos de acceso optimizado al bloque que ve en la imagen 2 y presione Aceptar, aparecerá un mensaje de advertencia, vea la imagen 3. Imagen 3: ventana emergente para cambiar el acceso al bloque Una vez que presione Aceptar, su DB2 se habrá convertido al acceso estándar al bloque. Vea la imagen 4 para ver qué diferencia generó. Imagen 4: DB2 ahora es un bloque estándar Lo que podemos ver directamente es que DB1 y DB2 ya no son lo mismo. La opción de acceso al bloque estándar representada en DB2 tiene una columna adicional llamada desplazamiento. Delante de cada variable en el cuadro de desplazamiento, hay un … escrito, esto cambiará una vez que compile su programa. Vamos a compilar y ver qué sucede, vea la imagen 5. Imagen 5: compile su programa para recargar el desplazamiento Ahora, el desplazamiento se completa con, como puede ver, 0.0, 2.0, 4.0 y 8.0 respectivamente. Entonces, ¿qué es ese desplazamiento? ¿Qué significa? Llegaremos a eso más tarde, pero ahora, vamos a crear otro bloque ESTÁNDAR y declarar las mismas 4 variables, pero esta vez cambiaremos el orden de los tipos de datos de las variables, vea la imagen 6. Imagen 6: crear otro bloque estándar DB3 En la última imagen, puede ver que el desplazamiento de DB2 y DB3 es diferente. ¿Por qué los valores de desplazamiento son diferentes cuando cambiamos el orden de los tipos de datos? Son los mismos tipos de datos, pero en un orden diferente. Creemos otra base de datos estándar y declaremos las mismas 4 variables, pero nuevamente en un orden diferente. Compile su código de PLC y ahora compare el desplazamiento de las 3 bases de datos. Vea la imagen 7. Imagen 7: tres bases de datos diferentes con tres desplazamientos diferentes Ocurrió lo mismo nuevamente. ¿Qué son las bases de datos estándar? ¿Cuál es el desplazamiento? Los bloques de datos con acceso estándar tienen una estructura fija. Cuando declaras una variable dentro de una base de datos estándar, a esta variable se le asignará una dirección fija dentro de esta base de datos. La dirección de esta variable se muestra en la columna “Offset”. Por lo tanto, lo que estábamos viendo dentro del offset en las imágenes anteriores era la dirección asignada para cada variable. Como la estructura de las bases de datos estándar es fija, solo puedes trabajar dentro de las bases de datos con capacidad de memoria fija, es decir, un área de 16 bits o 2 bytes. Esta es la razón por la que las mismas variables se direccionan de manera diferente cuando cambiamos el orden de declaración. Para obtener más explicaciones, consulta la imagen 8. Imagen 8: representación simple de DB2 La imagen 8 muestra una representación simple del bloque de datos estándar DB2. Como dijimos antes, una base de datos estándar tiene bloques de memoria fijos de 16 bits, por lo que, cuando declaramos que la Variable_1 es del tipo de datos BOOL, esta Variable ocupará los 16 bits completos aunque solo necesite 1 bit de memoria. Por eso, el resto del área se ve marcada en rojo porque no se usa pero ya no se puede usar. Por lo tanto, es una memoria perdida. Con la Variable_2, el tipo de datos INT necesita 16 bits, por lo que está utilizando 2 bytes completos. Lo mismo con la Variable_4, que es del tipo de datos WORD. Con la Variable_3, ocupamos 4 bytes porque es del tipo de datos REAL. Por eso, el desplazamiento para DB2 es 0.0, 2.0, 4.0 y 8.0 respectivamente. El mismo concepto se ejecuta para DB3 y DB4. Pero debido a que el orden de los tipos de datos de las variables es diferente, la representación de la memoria será diferente y, por lo tanto, el desplazamiento será diferente. Vea las imágenes 9 y 10 para DB3 y DB4. Vea si puede comprender la representación en función de la explicación anterior. Imagen 9: representación de la memoria de DB3 Imagen 10: representación de la memoria de DB4 Por lo tanto, cuando trabaja con una base de datos estándar, debe tener cuidado al declarar sus variables, sabiendo que habrá una pérdida de memoria cada vez que defina una nueva variable BOOL. Si declara la nueva variable al final de su lista de base de datos, el desplazamiento se extenderá para incluir su nueva variable. Pero si declara la nueva variable entre su antigua o al comienzo de la base de datos, sucederá algo más. Vea la imagen 11. Imagen 11: Declaración de una nueva variable Lo primero que notará es que su desplazamiento ahora se perdió y debe compilar su código para restablecer el nuevo desplazamiento. Vea la imagen 12. Imagen 12: restablezca su desplazamiento recompilando su código ¿Observó cómo ha cambiado ahora el direccionamiento de las variables (OFFSET)? Por ejemplo, el desplazamiento de la etiqueta REAL era 2.0, pero después de agregar la nueva variable de prueba, el direccionamiento de la misma etiqueta REAL (OFFSET) ahora es 4.0, vea la imagen 13. Imagen 13: cambio de desplazamiento después de agregar la variable de prueba Entonces, al agregar una nueva variable, se cambió el direccionamiento de todas las variables antiguas. Eso significa que cualquier instrucción en su programa que necesite escribir o leer el valor de una determinada variable ahora buscará en la dirección asignada en la instrucción, pero ahora la dirección tiene datos diferentes a los esperados. En pocas palabras, toda su lógica ahora está desordenada. Eso generará muchos problemas. Sin mencionar que ahora tiene memoria extra perdida después de agregar la nueva variable. Vea la imagen 14. Imagen 14: agregar una instrucción MOVE Agreguemos una instrucción MOVE para mover un valor de 1 a la etiqueta Variable_2. Observe cómo la dirección de la salida MOVE es %DB2.DBW2. Ahora, agreguemos una nueva variable de tipo INT a DB2. Vea la imagen 15. Imagen 15: agregar una nueva variable INT Cuando agrega la nueva variable, se pierde el desplazamiento y el PLC ya no sabe dónde está el destino de OUT1 de la instrucción MOVE. Necesitamos compilar el programa para volver a cargar el nuevo desplazamiento. Vea la imagen 16. Imagen 16: nueva dirección de OUT1 ¿Ve cómo la dirección de OUT1 ahora es diferente? Ahora es %DB2.DBW4 en lugar de %DB2.DBW2. Esta es una gran desventaja de usar bloques de datos estándar. ¿Qué son las bases de datos optimizadas? La diferencia entre los bloques de datos optimizados y los bloques de datos estándar es que las variables dentro de un bloque de datos optimizado no se asignan a una dirección fija, sino que se les da un nombre simbólico, además la estructura del bloque de datos no es fija como los bloques de datos estándar, por lo que no hay pérdida de memoria ni cambios en las direcciones al declarar nuevas etiquetas. Ver imagen 17. Imagen 17: Declaración de nueva etiqueta en bloques optimizados Por lo tanto, declarar nuevas etiquetas en bloques de datos optimizados no afectará al resto de las etiquetas, ya que se definen por nombres simbólicos en lugar de direcciones absolutas. Un bloque de datos optimizado no le permitirá usar direcciones cuando trabaje con las etiquetas definidas dentro de él. Consulte la imagen 18. Imagen 18: direccionamiento absoluto con bloques optimizados Como puede ver en la última imagen, no se permite el direccionamiento absoluto con un bloque de datos optimizado y solo se permiten nombres simbólicos. Consulte la imagen 19. Imagen 19: uso de nombres simbólicos con bases de datos optimizadas Ventajas de los bloques de datos con acceso optimizado Los bloques de datos con acceso optimizado no tienen una estructura definida fija. A los elementos de datos (etiquetas) solo se les asigna un nombre simbólico y no se utiliza ninguna dirección fija dentro del bloque. Los elementos se guardan automáticamente en el área de memoria disponible del bloque para que no haya espacios vacíos en la memoria. Esto permite un uso óptimo de la capacidad de memoria y evita la pérdida de memoria en comparación con las bases de datos estándar. Esto proporciona las siguientes ventajas: Puede crear bloques de datos con cualquier estructura sin prestar atención a la disposición física de las etiquetas individuales. El acceso rápido a los datos optimizados está siempre disponible porque el almacenamiento de datos está optimizado y gestionado por el sistema. No es posible que se produzcan errores de acceso, como por ejemplo con el direccionamiento indirecto o desde la HMI. Como ahora hay direcciones, solo nombres simbólicos únicos para cada etiqueta. Puede definir etiquetas individuales específicas como retentivas. En las bases de datos estándar, solo puede definir todo el bloque como retentivo. Conclusión Los bloques de datos optimizados tienen muchas ventajas en comparación con las bases de datos estándar. El uso de nombres simbólicos ayuda a evitar cualquier cambio de dirección de las etiquetas al agregar nuevas variables a su bloque. Con los bloques optimizados, no se pierde ningún área de memoria. Al contrario de lo que sucede cuando se utilizan bases de datos estándar. -
Hora local y del sistema en PLC
xiangjinjiao posted A plc and hmi article in Spanish in PLC programming learning
En artículos anteriores, hablamos sobre los temporizadores en PLC, los diferentes tipos y cómo usarlos. Los temporizadores en realidad no necesitan tiempo real para funcionar, ya que solo dependen de contar segundos o milisegundos según la configuración. Pero para algunas aplicaciones, es necesario conocer la fecha y hora reales del programa PLC, por ejemplo, para fines de diagnóstico. En este artículo, hablaremos sobre la hora local y del sistema de un PLC. Contenido: ¿Por qué necesito tiempo real en PLC? Programa de ejemplo y simulación ¿Qué es la hora del sistema? ¿Qué es la hora local? Conclusiones. ¿Por qué necesito tiempo real en PLC? En muchas aplicaciones de PLC, es necesario conocer el tiempo real mientras se ejecuta el proceso, por muchas razones diferentes. A continuación, se muestran algunas de estas razones: Copia de seguridad del PLC en el servidor principal. Para el diagnóstico del PLC, es necesario tener un registro de tiempo para el diagnóstico, para saber a qué hora se ha producido un determinado evento, de lo contrario, la información de diagnóstico no sería muy útil. Para las aplicaciones en las que se necesita trabajar con las interrupciones de hora del día OB10, se necesita saber la hora real. Es posible que deba utilizar la hora local o la hora del sistema en partes de su lógica en las que necesita manejar aplicaciones en tiempo real. Para el registro de datos, si tiene datos importantes para guardar y necesita la marca de tiempo para cada registro de datos, entonces necesita tener la configuración de hora correcta para su PLC para que los datos almacenados tengan sentido. Programa de ejemplo y simulación de PLC Para comprender mejor qué es la hora del sistema y la hora local en un PLC, comenzaremos por crear un programa muy simple y lo utilizaremos para explicar el concepto de horas reales dentro de los PLC. Verifique el siguiente paso: En este artículo, no crearemos ninguna lógica de PLC, pero mostraremos algunas configuraciones relacionadas con la hora del sistema y la hora local en el PLC, cómo configurarlas y cuáles son las diferencias. Abra el portal Siemens Tia, agregue un nuevo dispositivo y, esta vez, utilizaremos la CPU 1512C-1 PN. Vea la imagen 1. Imagen 1: agregue un nuevo PLC Compile e inicie una nueva simulación de PLC. Abra la página de diagnóstico y en línea y verifique la hora establecida del PLC. Vea la imagen 2. Imagen 2: hora en línea del PLC En la imagen anterior, puede ver que hay dos horas diferentes: La hora de PG/PC: esta es la hora local de su propia PC. La hora del módulo: esta es la hora real dentro del propio PLC. Ambas horas se pueden configurar con el mismo valor o pueden ser diferentes. Es mejor que sean iguales, es mejor que la hora del módulo sea similar a su hora local o, más específicamente, similar a la hora local del área donde se utilizará el PLC. Consulte la imagen 3. Imagen 3: Establecer la hora del PLC Si desea que la hora del módulo sea la misma que la hora local, seleccione Tomar de PG/PC y presione aplicar. En su OB1 principal, arrastre y suelte las instrucciones RD_SYS_T y RD_LOC_T. Estas son las instrucciones de lectura de la hora del sistema y lectura de la hora local. Estas instrucciones son funciones integradas FC dentro del PLC y se utilizan para escribir la hora local y la hora del sistema del PLC en cualquier destino que elija en la salida OUT de la instrucción. Consulte la imagen 4. Imagen 4: Agregar instrucciones de lectura de la hora del sistema y la hora local Agregue un nuevo bloque de datos global y defina algunas etiquetas con las que trabajar. Consulte la imagen 5. Imagen 5: Crear un nuevo bloque de datos global Ejecute su simulación nuevamente y verifique ambas horas. Consulte las imágenes 6 Imagen 6: hora local y del sistema en línea del PLC En la imagen anterior, puede ver que la hora local y la hora del sistema del PLC son las mismas, pero son diferentes de la hora local real de su PC. Si recuerda, hemos configurado la hora del módulo del PLC para que sea similar a la hora de la PG/PC, que es su hora local. Consulte la imagen 7. Imagen 7: hora del módulo y hora de la PG/PC Como puede ver, en la página de configuración de la hora, se elige que la hora del módulo se tome de la hora de la PG/PC. Pero, en los casos reales, son diferentes. ¿Por qué? ¿Por qué las horas son diferentes? Debido a que la configuración predeterminada de la hora local del PLC es UTC+0 o la hora Zulu, si está familiarizado con ese término, no la cambia desde la página de diagnóstico y en línea, sino desde las propiedades del propio PLC. Ver imagen 8. Imagen 8 – Configuración de la hora del día en un PLC Como puede ver, la configuración predeterminada de la hora del día del PLC está establecida en UTC+0, y es por eso que la hora del módulo PLC era diferente de su hora local real. A menos que estuviera en Londres, en cuyo caso no tendría este problema. Para corregir la hora local del PLC, tenemos que cambiar eso en la configuración, necesitamos cambiar la zona horaria a la zona horaria que tenemos, que en mi caso es UTC+02:00. Ver imagen 9. Imagen 9 – Ajuste de la hora local del PLC a su zona horaria También puede ver que la opción de horario de verano se desactivó porque no se usa en mi país. Tendrá que activarla si se usa en su área. Ahora que todas las configuraciones están configuradas correctamente, vuelva y vea la hora local y la hora del sistema nuevamente en la simulación. Vea la imagen 10. Imagen 10: la hora local del PLC ahora es la misma que la de la PC Ahora, después de ajustar la zona horaria del PLC, puede ver que la hora local del PLC y la hora local real de su área son las mismas. Como dijimos antes, es muy importante configurar la hora local correcta del PLC, por las muchas razones que mencionamos anteriormente. ¿Puede definir ahora cuál es la hora del sistema y la hora local del PLC? Hora del sistema en el PLC Es la hora del módulo del reloj de la CPU. El reloj de la CPU interpreta la hora del módulo como la hora universal coordinada (UTC). En consecuencia, la hora del módulo siempre se almacena sin los factores “zona horaria local” u “hora de verano” en el reloj de la CPU. A continuación, el reloj de la CPU calcula la hora local del reloj de la CPU basándose en la hora del módulo. La hora del módulo del reloj de la CPU se utiliza como plantilla para todos los procesos de tiempo que comienzan desde la CPU. Ejemplos de uso: Cálculo de la hora local del reloj de la CPU basándose en la hora del módulo Representación de la hora del módulo en hora local en “Online & Diagnostics” Entradas en el búfer de diagnóstico de la CPU Hora local en el PLC La información sobre la zona horaria y el inicio del horario de verano y la hora estándar, que ha configurado en la configuración del reloj de la CPU, se utiliza para mostrar la hora local. La hora local es la hora que tiene en su PC o en su país, que será diferente de una zona a otra. Conclusión Muchas aplicaciones requerirán que el PLC conozca la hora real o local del proceso, de modo que pueda realizar ciertas tareas, por ejemplo, el registro de datos y las tareas de diagnóstico. En un próximo artículo, mostraremos algunas aplicaciones en las que se necesita tiempo real para su lógica. La hora local del PLC debe configurarse manualmente para que coincida con el área donde se utilizará el PLC.