Fx3u подключение датчика температуры
Читатель
Группа: Пользователи
Сообщений: 3
Регистрация: 16.09.2014
Пользователь №: 10330
Столкнулся (точнее столкнули) с проблемой — необходимо создать учебный стенд-макет на базе FX3U (FX3U-16MT/ESS) для чего надо подключить несколько тумблеров на входы, несколько светодиодов на выходы и термодатчик к аналоговому входу.
Если с тумблерами и светодиодами более-менее понятно, то термодатчик вызывает ряд вопросов.
1. Модуль аналогового ввода FX3U-4AD-ADP — не специализированный для термодатчиков.
2. Какой тип термодатчика выбрать и как его подключать к указанному модулю? Тут опыта нет совсем. Диапазон измерения температуры не критичен — лишь бы менялись показания, а от спички или от тепла руки — разницы нет.
Подскажите как решать проблему?
Маньяк
Группа: Пользователи
Сообщений: 956
Регистрация: 19.08.2009
Пользователь №: 9149
Термопреобразователь сопротивления со стандартизованным выходом 4-20мА. Такие существуют, но стоят, естественно, дороже. Подключать как указано в документации на модуль и термосопротивление.
Маньяк
Группа: Пользователи
Сообщений: 838
Регистрация: 27.07.2004
Из: Россия
Пользователь №: 48
Столкнулся (точнее столкнули) с проблемой — необходимо создать учебный стенд-макет на базе FX3U (FX3U-16MT/ESS) для чего надо подключить несколько тумблеров на входы, несколько светодиодов на выходы и термодатчик к аналоговому входу.
Если с тумблерами и светодиодами более-менее понятно, то термодатчик вызывает ряд вопросов.
1. Модуль аналогового ввода FX3U-4AD-ADP — не специализированный для термодатчиков.
2. Какой тип термодатчика выбрать и как его подключать к указанному модулю? Тут опыта нет совсем. Диапазон измерения температуры не критичен — лишь бы менялись показания, а от спички или от тепла руки — разницы нет.
Подскажите как решать проблему?
Источник
cnc-club.ru
Статьи, обзоры, цены на станки и комплектующие.
Китайский PLC-контролллер FK3U
Китайский PLC-контролллер FK3U
Сообщение odekolon » 26 янв 2017, 12:23
Для начала, чисто поиграться. поэкспериментировать. Потом привинчу куда-нибудь.
производитель обещает кучу приятных фич типа:
-поддержка 3 энкодеров,
— кучу счетчиков
— прерывания
— аналоговый ввод-вывод
-дополнительный 485 порт.
еще, когда заказывал, на страничке было указано, про modbus-совместимость, щас, почему-то нет.
скорость работы на 232 порту, не больно высока 38400
скорость полного цикла 1 мс
Батарейка реального времени присутствует, часы вроде тикают.
в комплекте только контроллер и шнурок 232. Все. Ни документации ни софта.
монтаж возможен как на поверхность, так и на ДИН-рейку.
поскольку наши китайские братья позиционируют контроллер как mitsubisi-совместимый, поставил gx-developer, подобрал тип контроллера как FX3U
выставил скорость на порту 38400, вроде заработало..
первый эксперимент с лэддером:https://www.youtube.com/watch?v=pD7eg5dn3MU
вроде работает
теперь научиться бы работать с прерываниями и аналоговыми входами-выходами.
и подключить его по modbus
PS
китайский брат прислал типа доки:
Re: Китайский PLC-контролллер FK3U
Сообщение slooter » 26 янв 2017, 12:27
Re: Китайский PLC-контролллер FK3U
Сообщение ozzy_sv » 26 янв 2017, 16:39
но не ведомо как оно реализовано в клоне
Re: Китайский PLC-контролллер FK3U
Сообщение odekolon » 27 янв 2017, 14:17
Аналоговый вводвывод освоил
синтаксис такой:
чтение
[m8011]— [RD3A K0 Kn Dn]
запись
[m8011]—[WR3A K0 Kn Dn]
где
M8011 — системный тикер 10 мс (можно и другой источник использовать)
Kn- номер канала ввода/вывода
Dn — номер ячейки памяти, куда будет положен/получен результат
напряжение ввода/вывода однополярное, точность — 4096 уровней
вроде есть PID-регулятор но с ним, в лом разбираться. Только под конкретную задачу.
буду дальше ковырять модбас
Re: Китайский PLC-контролллер FK3U
Сообщение tooshka » 27 янв 2017, 16:23
Re: Китайский PLC-контролллер FK3U
Сообщение odekolon » 27 янв 2017, 16:57
Re: Китайский PLC-контролллер FK3U
Сообщение tooshka » 27 янв 2017, 17:28
Re: Китайский PLC-контролллер FK3U
Сообщение odekolon » 27 янв 2017, 18:30
Re: Китайский PLC-контролллер FK3U
Сообщение tooshka » 27 янв 2017, 18:44
Re: Китайский PLC-контролллер FK3U
Сообщение Pin » 07 июн 2017, 17:32
Re: Китайский PLC-контролллер FK3U
Сообщение Pin » 23 июл 2017, 00:09
Re: Китайский PLC-контролллер FK3U
Сообщение ddv » 07 авг 2017, 15:49
Тоже такой приобрел, с модбасом разбираюсь, он у них не такой как в оригинальном melsec.
можешь скинуть сюда свои примеры инициализации и работы с модбасом? хоть на LD хоть на ST.
Еще вот думаю, можно ли этот PLC сделать modbus slave через rs485 (мастером у меня openhab (openhab.org))
И чтоб этот PLC был slave для панели оператора (OP320) через rs232.
Re: Китайский PLC-контролллер FK3U
Сообщение Pin » 19 авг 2017, 15:59
MOV(M8002 , k16529, D8120 ); инициализация modbus slave 19200,8,n,1
TRD( M8013 , D0); читаем RTC результат в D0-D7 (с часами были проблемы, пришлось впаивать недостающий осциллятор на 32 кГц и батарейку,)
RD3A(M8011 ,K0 , K0 , D10); читаем в модуле 0 (первое К0, всегда 0) аналоговый канал 0 (второе К0) по тикеру М8011, результат в D10
WR3A( M8011 , K0 , K0 , D4000 ); тоже самое только запись из D4000
DMOV( M8011, 0 ,K6Y000 ); Запись в порт (шесть 4-х битовых регистра порта Y начиная с нулевого выходного канала)
DMOV(M8011,K6Y000, Port_lamp_var); тоже самое только чтение
Адресация modbus
Y0 10257
Y1 10258
Y2 10259
Y3 10260
Y4 10261
Y5 10262
Y6 10263
Y7 10264
Y10 10265
Y11 10266
Y12 10267
Y13 10268
Y14 10269
Y15 10270
Y16 10271
Y17 10272
Y20 10273
Y21 10274
Y22 10275
Y23 10276
Y24 10277
Y25 10278
Y26 10279
Y27 10280
X0 10001
X1 10002
X2 10003
X3 10004
X4 10005
X5 10006
X6 10007
X7 10008
X10 10009
X11 10010
X12 10011
X13 10012
X14 10013
X15 10014
X16 10015
X17 10016
X20 10017
X21 10018
X22 10019
X23 10020
X24 10021
X25 10022
X26 10023
X27 10024
DO 40001
M8013 3791
M0 1
M1 2
TS0 3137
CS1 3521
C0 44353
D4000 44001
D8013 43791
S0 10001
Re: Китайский PLC-контролллер FK3U
Сообщение odekolon » 03 янв 2018, 22:51
Использую 14MT для модернизации старых советских станков (в основном, для сверлилок 2Н125/2Н135/2Н145, да наверное и 6Р13 тоже)
выбрасываю всю хрень, что там есть, оставляю 5 реле, пять пускателей, два мотор-автомата. Получается простая ремонтопригодная конструкция.
10МТ под заказ, на автоматизацию ворот для мойки самообслуживания. Там требуется немного нестандартная логика работы с датчиками безопасности
Модуль с индикацией — тоже штука прикольная. Он позволяет выводить на дисплей числовую информацию (пзоже только в 10-ном формате)
а также позволяет править содержимое регистров D. То есть можно сделать девайс, с оперативно изменяемыми параметрами.
количество изменяемых регистров, практически не ограничено. Подключение — в порт для программирования. Сначала программируешь контроллер, а потом подключаешь модуль индикации.
Источник
-
Contents
-
Table of Contents
-
Troubleshooting
-
Bookmarks
Quick Links
USER’S MANUAL — Analog Control Edition
FX
/FX
/FX
SERIES PROGRAMMABLE CONTROLLERS
3G
3U
3UC
Voltage / Current Input
FX
-2AD-BD
3G
FX
-4AD
3U
FX
-4AD-ADP
3U
FX
-4AD
3UC
Voltage / Current Output
FX
-1DA-BD
3G
FX
-4DA
3U
FX
-4DA-ADP
3U
Temperature Sensor Input
FX
-4AD-PT-ADP
3U
FX
-4AD-PTW-ADP
3U
FX
-4AD-PNK-ADP
3U
FX
-4AD-TC-ADP
3U
Chapters
Troubleshooting
Related Manuals for Mitsubishi FX3U-4AD
Summary of Contents for Mitsubishi FX3U-4AD
0 / 0 / 0 Регистрация: 01.12.2022 Сообщений: 4 |
|
1 |
|
01.12.2022, 07:22. Показов 1139. Ответов 14
помогите люди добрые. купил на Алиэкспресс FX3U не могу подключиться к компу. китайцы кабель не положили. нужна схема кабеля. кабель с двух сторон 9 пин разъем.
0 |
49 / 42 / 8 Регистрация: 23.02.2021 Сообщений: 125 |
|
01.12.2022, 08:02 |
2 |
Если комовский (db9f или db9m), то варианта всего два, это прямой 2-2, 3-3, 5-5, или нуль-модемный 2-3, 3-2, 5-5.
0 |
0 / 0 / 0 Регистрация: 01.12.2022 Сообщений: 4 |
|
01.12.2022, 08:37 [ТС] |
3 |
прямой 2-2, 3-3, 5-5, или нуль-модемный 2-3, 3-2, 5-5 пробовал. выдает ошибку ES:0180840b
0 |
49 / 42 / 8 Регистрация: 23.02.2021 Сообщений: 125 |
|
01.12.2022, 09:18 |
4 |
А каким ПО пытаетесь выгрузить? Gx works2 или gx developer?
0 |
0 / 0 / 0 Регистрация: 01.12.2022 Сообщений: 4 |
|
01.12.2022, 09:39 [ТС] |
5 |
Gx works2 или gx developer Добавлено через 50 секунд Добавлено через 2 минуты
0 |
49 / 42 / 8 Регистрация: 23.02.2021 Сообщений: 125 |
|
01.12.2022, 09:42 |
6 |
Тогда непонятно т.к. был случай когда из gx works2 не было связи т.к. EnvMEL не был установлен…
0 |
0 / 0 / 0 Регистрация: 11.07.2013 Сообщений: 6 |
|
01.12.2022, 16:09 |
7 |
А можно ссылочку на продавца контроллера. Добавлено через 13 минут
0 |
49 / 42 / 8 Регистрация: 23.02.2021 Сообщений: 125 |
|
01.12.2022, 16:38 |
8 |
А можно ссылочку на продавца контроллера. Вы как будто не видели эти подделки на коленке с db9. Первый же товар по запросу fx3u.
0 |
0 / 0 / 0 Регистрация: 01.12.2022 Сообщений: 4 |
|
01.12.2022, 17:09 [ТС] |
9 |
верно.. именно такой… прямой 2-2, 3-3, 5-5, или нуль-модемный 2-3, 3-2, 5-5 пробовал. выдает ошибку ES:0180840b.
0 |
0 / 0 / 0 Регистрация: 26.01.2023 Сообщений: 3 |
|
26.01.2023, 12:39 |
10 |
Добрый день. Та же проблема.
0 |
49 / 42 / 8 Регистрация: 23.02.2021 Сообщений: 125 |
|
26.01.2023, 12:56 |
11 |
А какой это клон? С db9 или с круглым? Ссылку дайте.
0 |
0 / 0 / 0 Регистрация: 26.01.2023 Сообщений: 3 |
|
26.01.2023, 13:05 |
12 |
0 |
49 / 42 / 8 Регистрация: 23.02.2021 Сообщений: 125 |
|
26.01.2023, 13:38 |
13 |
Пытаетесь на скорости 38.4 кбит? Как и написано.
0 |
0 / 0 / 0 Регистрация: 26.01.2023 Сообщений: 3 |
|
26.01.2023, 13:39 |
14 |
Да, 38400, пробовал и другие
0 |
0 / 0 / 0 Регистрация: 01.08.2019 Сообщений: 1 |
|
30.01.2023, 23:05 |
15 |
0 |
Продолжим.
Были рассмотрены модули WP3082 и Wp8026 сейчас рассмотрим модуль WP8027.
Для подключения модулей расширения к компьютеру использую: » Промышленный преобразователь USB в RS485, защита от обновления, преобразователь RS232, Совместимость со стандартом V2.0, Модуль платы разъема RS-485″ Конкретно продавца не указываю их много выберите сами. Данных модулей с десяток от разных продавцов и все они работают.
Сразу укажу адаптер для подключения контроллера к компьютеру для его программирования: «USB к RS232 com-порт PDA 9 pin DB9, адаптер кабеля, sup-порт, с 1/2 разъемами USB к 2/4/5, USB к 1/2, USB к 1/2, USB к 1/2/2, USB к 1/2.» Конкретно продавца не указываю их много выберите сами. Данных модулей с десяток от разных продавцов и все они работают.
Почему данного адаптера много, были случаи когда при программировании оставлял на ночь подключенный адаптер к контроллеру, программа в это время была включена в режим «Monitor Mode (F3)», а утром почему-то адаптер переставал работать. Что- бы не испытывать судьбу закупил их с десяток.
Используя программу WELLPRO Debugging Software_V1.42K можно просмотреть реакцию протокола ModBus RTU на действия на входе модуля. Адрес модуля буду указывать как у меня он запрограммирован.
• Открывая программу «WELLPRO Debugging Software_V1.42K» в окне «Model Select» выбираем модуль который подключен к компьютеру. Для просмотра режима ModBus RTU, которым прошит данный модуль расширения, нажимаем клавишу: «Parameter Setting». На компьютере , в режиме «Устройства и принтеры» находим подключенный адаптер » USB-SERIAL CH340 (COMxx)» и в программе «Parameter Setting» в окне «Serial No.» выставляем наш «COMxx» порт, а затем нажимаем кнопку «Port Close». Для поиска устройства нажимаем кнопку «Read» и в вкладке «Module Parameter Read» считываем параметры подключенного модуля расширения. Как правильно с завода он запрограммирован на адрес 01 и скорость 9600. Для введения новых параметров на вкладке «Communication Parameter Change» в окне «Address» указываем новый адрес устройства в сети RS485, а в окне «Parameter» выбираем новые параметры протокола RS485. Во вкладке «Module Address Change» в окне «New Address» новый адрес устройства сети RS485. После этих манипуляций нажимаем кнопки «Write» и кнопку «Read» в вкладке «Module Parameter Read» и смотрим новые параметры для протокола «ModBus RTU»нашего модуля расширения. Если Вас устраивает новые параметры, то вкладку «Parameter Setting» можно закрыть и в программе «WELLPRO Debugging Software_V1.42K» нажимаем кнопку «Function Testing». Открывается окно вашего модуля расширения: например «WP8027ADAM». Вновь нажимаем кнопку «Port Close», устанавливаем адрес устройства, который запрограммировали, и нажимаем кнопку «Write». Если связь установлена то в окне «Serial Send Data» (Последовательная отправка данных) будем считывать параметры протокола «ModBus RTU» на передачу, а в окне «Receive Data» (Последовательный прием данных) будем считывать параметры протокола «ModBus RTU» на прием, т.е. протокол ответа от модулю расширения к контроллеру.
• Пример: Модуль WP8027ADAM адрес — 23 (H17) Все выходы отключены,-
• Запрос: 17 0F 00 00 00 10 02 00 00 04 40; Ответ: 17 0F 00 00 00 10 56 F1;
• Пример: Модуль WP8027ADAM адрес — 23 (H17) Включен выход 01, —
• Запрос: 17 0F 00 00 00 10 02 01 00 05 D0; Ответ: 17 0F 00 00 00 10 56 F1;
• Пример: Модуль WP8027ADAM адрес — 23 (H17) Включен выход 08, —
• Запрос: 17 0F 00 00 00 10 02 80 00 65 80; Ответ: 17 0F 00 00 00 10 56 F1;
• Пример: Модуль WP8027ADAM адрес — 23 (H17) Включены выхода 01…08, —
• Запрос: 17 0F 00 00 00 10 02 FF 00 45 B0; Ответ: 17 0F 00 00 00 10 56 F1;
• Пример: Модуль WP8027ADAM адрес — 23 (H17) Включен выход 09, —
• Запрос: 17 0F 00 00 00 10 02 00 01 C5 80; Ответ: 17 0F 00 00 00 10 56 F1;
• Пример: Модуль WP8027ADAM адрес — 23 (H17) Включен выход 16, —
• Запрос: 17 0F 00 00 00 10 02 00 80 05 E0; Ответ: 17 0F 00 00 00 10 56 F1;
• Пример: Модуль WP8027ADAM адрес — 23 (H17) Включены выхода 09…16, —
• Запрос: 17 0F 00 00 00 10 02 00 FF 44 00; Ответ: 17 0F 00 00 00 10 56 F1;
Расшифровка кода сообщения: 17 — адрес устройства; Код функции: 15 (0x0F);
Что делает функция: Запись нескольких DO; Тип значения: Дискретное; Тип доступа: Запись.
(00 00 00 10) — специальные данные; (02) — количество передаваемых байт; пятый байт -отвечает за первую группу (01…08) из 8-ми каналов, шестой байт — отвечает за вторую группу (09…16) из 8-ми каналов.
Итак мы знает какие байты управляют выходами модуля (WP8027ADAM), но вот ответа о срабатывании выхода в данном модуле не наблюдается.
На сегодня все.
Жду ответа от «НЕ ДИЛЕТАНТА».
Время на прочтение
7 мин
Количество просмотров 8.5K
На рынке уже довольно давно присутствуют китайские клоны промышленных контроллеров Mitsubishi серий FX1, FX2, FX3. Их особенностью является возможность программирования в средах GX Developer, GX Works2 от Mitsubishi. Самые дешевые продаются в виде маленьких плат. Те, что подороже, имеют корпус, сеть RS-485, часы реального времени и т.д.
Большинство этих ПЛК (клонов) сделано на микроконтроллерах линейки STM32, а в последнее время также на клонах STM от китайских Geehy Semiconductor, GigaDevice и др. Далее слово «клон» я буду употреблять уже в связке с микроконтроллером STM32. В статье я не буду рассматривать аспекты программирования «клонов-клонов», т.е. буду считать, что имею дело с самым настоящим STM32, для которого можно применять официальную документацию STMicroelectronics.
Так о чем же эта статья? На электронных форумах некоторые участники прошивают отладочные платы типа Blue pill, которые сделаны на STM32, прошивками от этих самых китайских ПЛК, получая возможность программировать платы из GX Developer, GX Works2. Т.е. уходят от софта для программирования микроконтроллеров в софт для инженеров по автоматизации. Но у Blue pill нет никакой «промышленной» обвязки в виде питания +24В, оптических развязок интерфейсов и необходимых уровней напряжений, стандартных аналоговых сигналов 4-20mA, 0-10В. В итоге одним Blue pill в полевых условиях не обойтись.
Я же решил сделать обратную процедуру, а именно взять промышленный контроллер (не идеальный, но кое-что на нем уже есть) с готовыми полевыми обвязками. Задействовать железо этих ПЛК в средах программирования микроконтроллеров, таким образом получить более широкие возможности по программированию в С/C++, не ограниченные языками FBD, LD. Также этому в некоторой степени способствовала статья Repurposing a PLC clone for use with Arduino. Для этого я приобрел китайский FX3U-14MR, почти такой же как на фотографии выше, у которого кроме дискретных и аналоговых входов-выходов есть еще RTC и RS-485 сеть. Я не являюсь профессиональным электронщиком (простите мою любительскую схему) или программистом микроконтроллеров, а скорее принадлежу к плеяде АСУшников и вообще люблю готовые программные модули и библиотеки, поэтому программировать буду в Arduino IDE, используя Arduino core for STM32 MCUs STM32duino со всеми доступными библиотеками. Но прежде чем писать программы, нужно понять все «железо». Определить Microcontroller Unit (далее MCU), получить схему подключения периферии, чем мы и займемся в первой части.
Часть 1. Железо. Схема узлов и периферии
Плата контроллера выглядит вот так. На моем контроллере есть некоторые изменения, о которых я расскажу ниже. Из основного видны: MCU STM32F103VCT6, оптопары дискретных входов, ключи ULN2003 для реле, трансивер RS-485 SP485E (рядом с разъемом RS-485), операционный усилитель LM158 для аналоговых выходов DA0, DA1, батарея RTC и часовой «кварц» рядом с ней. Слева внизу последовательный порт RS-232 и трансивер TP3232N. Рядом с MCU микросхема I2C EEPROM. Сверху (синие) подстроечные резисторы, еще выше светодиод Run и ручной переключатель режима Start/Stop. Ну и конечно виден некий разъем, на который, как я предполагал изначально, выведен интерфейс отладки STM32 SWD. Такая вот ардуина на стероидах.
После нескольких часов, проведенных с лупой и мультиметром, удалось восстановить часть схемы интересующей меня периферии.
MCU
Когда я заказывал ПЛК, то надеялся (на самом деле 50/50), что он будет оснащен чипом STM32F103VCT6, как было видно на фотографиях лота. Но когда получил контроллер, то вместо STM32 увидел это. Хуже всего, что на нем не оказалось никакой вменяемой маркировки, только что-то типа 14CPU (или GPU), нацарапанной поверх затертого корпуса (что же там было до этого?). Впрочем я также ожидал клоны STM32 от Geehy Semiconductor или GigaDevice, но не совсем «noname». Я предположил, что это может быть отбраковка STM32, которую предприимчивые китайцы решили пустить в дело. Либо в лучшем случае это просто такая защита от копирования изделия (другими китайцами ). В общем после всех дальнейших манипуляций с ПЛК я воспринимаю этот процессор как STM32F103VCT6, так как он видится и программируется в STM32CubeProgrammer, и STM32 ST-LINK Utility через интерфейс SWD. А также загружается с USART1 при выборе соответствующего boot mode.
I2C EEPROM
8-ножечная микросхема, расположенная рядом с MCU, оказалась чипом EEPROM с интерфейсом I2C. И скорее всего это что-то типа 64Кбит FT24C64 или похожая. На моей плате чип оказался тоже затертым. Пересмотрев множество фотографий аналогичных ПЛК, я так и не смог на 100% уверенно определить маркировку. Поэтому дальше с EEPROM разбирался уже на программном уровне. А вот зачем тут нужен EEPROM — вопрос. Я не разбирался подробно в штатных средствах программирования клонов Mitsubishi, но предполагаю, что в EEPROM могут храниться энергонезависимые переменные программы, либо может быть даже сама программа ПЛК. EEPROM не задействует аппаратный I2C STM32, хуже того он задействует линию SWDIO (PA13) интерфейса отладки SWD. В общем придется делить SWD с GPIO и использовать программный I2C.
Дискретный входы/выходы Xn/Yn, светодиод Run
Дискретные входы с обозначениями X0-X7 заведены на оптопары. Выходы оптопар притянуты к +3.3В, при срабатывании оптопары вход MCU замыкается на 0. Т.е. логика в программе для дискретных входов будет инвертированная.
Дискретные выходы Y0-Y4 подключены через ключи Дарлингтона ULN2003 к выходам MCU. Логика управления прямая. Управление светодиодом Run инвертированное.
Аналоговые входы/выходы ADn/DAn, два потенциометра настроек
Схема аналоговых каналов без подробностей. Необходимый минимум есть на электрической схеме. У части аналоговых входов (0-20мА) впаян параллельный резистор на 500Ом, преобразующий внутри токовый сигнал 0-20мА в 0-10В. Кроме того на плате присутствует пара подстроечных резисторов (делителей напряжения) синего цвета. Из оригинального описания ПЛК они предназначены для ручного задания значений некоторых регистров, которые можно использовать в программе ПЛК. В MCU они также заведены на АЦП входы. Напряжение с двух аналоговых выходов ЦАП MCU через операционные усилители преобразуется в сигнал 0-10В.
Ручной переключатель режима Start/Stop
На электрической схеме тоже обозначен. Либо притягивает вход MCU к +3.3В либо к 0. Но вот сам вход MCU уже представляет больший интерес. Переключатель подключен к порту PB2/BOOT1. Таким образом этим переключателем можно задавать состояние входа BOOT1 для управления режимом внутреннего загрузчика STM32. Запомним это.
Цепь мониторинга питания
Производитель, не сильно мудрствуя, сделал мониторинг питания контроллера на стабилитроне и делителе напряжения, подключенных прямо к входному напряжению +24В. На одной из фотографий выше показано, где расположены элементы этой цепи. Тут нет оптической развязки, и я не рекомендую питать контроллер напряжением выше +24В, чтобы не спалить вход MCU, напряжение на котором уже близко к 5В. Благо данный вход GPIO толерантный к 5В. Но такая цепь (раз она уже есть) позволяет отлавливать обесточивание ПЛК, а буферные конденсаторы обеспечивают несколько секунд работы без питания. Таким образом можно успеть сделать запись сохраняемых параметров в EEPROM, что я и сделал в своей программе-примере.
RTC
Часы реального времени являются частью MCU STM32F103VCT6. Плата имеет всю необходимую обвязку (кварцевый резонатор, батарею) для их функционирования. На схеме эти цепи не отражены.
Интерфейс RS-485
Заведен на UART4 MCU. Линия контроля передачи DE делит линию PA14 с SWCLK интерфейса отладки SWD аналогично EEPROM.
Интерфейс RS-232
Под RS-232 задействован USART1 MCU. Его можно будет использовать как угодно. В том числе для подключения к MCU через UART в STM32CubeProgrammer и загрузки прошивки как альтернатива SWD, в том числе в Arduino IDE. Для подключения вам понадобится USB-Serial адаптер либо аппаратный COM в ПК.
BOOT0 / BOOT1
У STM32 есть встроенный загрузчик прошивки, который позволяет удалять и заливать прошивку через USART1. Это очень удобно, т.к. USART1 на ПЛК как раз выведен на RS-232. Это касается и самых простых ПЛК, типа FX1N-10MT, которые не имеют SWD. К слову FX1N я тоже прошивал и программировал в STM32CubeProgrammer и Arduino IDE как раз через USART1.
Для загрузки через USART1 до включения питания контроллера необходимо замкнуть вход BOOT0 на +3.3V, удерживать при подключении и работе в STM32CubeProgrammer. По умолчанию он подтянут к земле через 10кОм.
А вот BOOT1 необходимо притянуть к 0, если это не так. Иначе не будет работать загрузка через UART. У FX1N-10MT это уже сделано в схеме, У FX3U это делается переключателем Start/Stop.
Нам нужны режимы либо User Flash memory, либо System memory.
Опять немного про FX1N-10MT. У меня есть еще такой контроллер, как на самой первой фотографии. Если присмотреться, можно увидеть там ниже центра 2 контактные площадки. С этим контроллером повезло, эти площадки как раз под джампер, подключающий +3.3В к BOOT0. Не у всех ПЛК она есть, на FX3U ее нет. Я впаял туда штырьевые контакты и поставил джампер. Теперь достаточно установить перемычку, включить питание ПЛК и можно заливать в него прошивку через UART. Вообще возможно про FX1N-10MT напишу отдельную заметку.
Так вот у рассматриваемого в статье ПЛК FX3U BOOT0 не выведен на какую либо контактную площадку, поэтому придется допаиваться к резистору, если BOOT0 вам нужен. В случае использования SWD трогать BOOT0 не обязательно, но есть нюансы, о которых позже.
Интерфейс SWD или ради чего все затевалось
Когда я выбирал ПЛК, специально искал плату с контактными площадками с подписями типа PA13, PA14, RST. Ведь это порты отладочного интерфейса STM32 SWD, который позволяет делать что угодно с MCU. На многих ПЛК эти контакты есть. Мои ожидания оправдались. Эти контакты действительно были линиями SWD, но не без сюрприза. На плате оказались подписи P13, P14, и они были перепутаны местами по отношению к PA13, PA14. Кроме того у меня оказалось 6 контактных площадок вместо 5 как на всех виденных фотографиях других ПЛК, на некоторых было всего 4. Последний контакт оказался заведен на EEPROM. Таким образом можно в принципе копировать EEPROM внешним программатором, т.к. все его линии в итоге выведены на площадки. На своей плате я напаял 5-штырьковый разъем, на фото можно увидеть пустующий 6 контакт. Распиновка есть на электрической схеме.
Мы определились с периферией и интерфейсами программирования. А как заставить все это «петь и танцевать», во второй части. Продолжение.