Добро пожаловать в вики ProductivityBlocks!
Здесь вы найдете документацию по инструменту ProductivityBlocks, а также несколько руководств. У каждого блока есть страница с описанием и кратким описанием использования блока. Используйте панель навигации справа, чтобы найти нужную информацию. Ниже приведено краткое введение в программное обеспечение.
Начиная
ProductivityBlocks — это инструмент графического блочного программирования, который записывает код C++ в среду разработки Arduino IDE .
Каждый блок представляет собой часть программы, которая будет работать на процессорах Arduino.
Создание программы
Чтобы создать программу, используйте вкладки в левой части приложения, чтобы выбрать категорию блока:
Затем щелкните и перетащите нужный блок на основной холст. Блоки встают на место, если их перетащить достаточно близко к соединителю правильной формы.
Чтобы удалить блок с основного холста, перетащите его на вкладки в левой части экрана и отпустите.
Сохранение и загрузка программ
Используйте кнопки «Сохранить» или «Сохранить как», чтобы сохранить программу блока. Чтобы загрузить блочную программу, выберите «Открыть» и выберите файл «.apb», который вы хотите загрузить.
Примеры программ
Если вы установили ProductivityBlocks с помощью установщиков в выпусках , у вас должны быть примеры программ, расположенные в
…/Documents/Arduino/ProductivityBlocks/Examples
Загрузка программы
Примечание. Перед загрузкой или проверкой блочной программы проверьте настройки в Arduino IDE в разделе «Файл-> Настройки». Если установлен флажок «Сохранить при проверке или загрузке», кнопки «Проверить» и «Загрузить» перезапишут ваш текущий эскиз Arduino.
После создания блочной программы нажмите кнопку «Проверить», чтобы проверить сгенерированный код C++:
Когда программа будет готова, используйте кнопку «Загрузить», чтобы отправить программу на подключенную плату Arduino.
Клонирование блоков
Чтобы клонировать группу блоков, выберите корневой блок, который вы хотите клонировать, и щелкните правой кнопкой мыши. Выберите «Клонировать». Выбранный блок будет продублирован вместе со всеми блоками, прикрепленными к нему.
Примечания
- Соблюдайте осторожность при клонировании большой группы блоков.
- Если требуется только один блок, рекомендуется выбрать блок из вкладок блока, а не клонировать.
Удаление блоков
Чтобы удалить блок с холста, просто перетащите блок на левую панель и отпустите. Любые блоки, прикрепленные к нему, также будут удалены.
Блокировка комментариев
Добавление комментариев к блокам
Блокировка комментариев обеспечивает способ документирования программы блокировки текстом. Чтобы добавить комментарий к блоку, просто щелкните его правой кнопкой мыши и выберите «Добавить комментарий».
Удаление комментариев из блоков
Чтобы удалить существующий комментарий из блока, щелкните его правой кнопкой мыши и выберите «Удалить комментарий». Имейте в виду, что это навсегда удалит комментарий из программы.
Скрыть/показать блок комментариев
Чтобы скрыть окно комментария, выберите значок ‘?’ на закомментированном блоке. Это переключит видимость комментария. Чтобы отобразить скрытый комментарий, снова щелкните значок.
Изменение размера/перемещение окна комментария
Чтобы переместить окно комментария, щелкните и перетащите границу окна. Чтобы изменить размер окна комментария, щелкните и перетащите указатель мыши в правом нижнем углу.
Примечания
- Блок комментариев отличается от блоков комментариев.
- Комментарии к блоку сохраняются/загружаются вместе с блочной программой.
Всплывающие подсказки
Чтобы увидеть краткое описание каждого блока, наведите указатель мыши на нужный блок до появления текста.
Определения
- П1АМ-100: Программируемый контроллер на базе Arduino, который подключается к модулям Productivity1000(см. ссылку).
- Производительность1000 Модули (модули P1): Модули ввода/вывода промышленного класса(см. ссылку).
- Arduino IDE: Средство разработки на C++, используемое для программирования микроконтроллеров Arduino(см. ссылку).
- Щель: Положение модуля P1 слева направо в соответствии с P1AM-100 (от 1 до 15).
- Точка: Разъем ввода/вывода на модуле P1 (пронумерован сверху вниз, начиная с 1).
- Канал: Синоним слова «Точка». Чаще относится к аналоговым разъемам ввода/вывода.
Блоки кода C++
Описание
Эти блоки позволяют внедрить собственный код C++ в блочную программу.
Употребление
Используйте блоки ‘C++ Code Block’ и ‘C++ Code Line’ для написания кода C++ непосредственно в блочную программу. Когда ProductivityBlocks генерирует код в Arduino Sketch с помощью кнопок «проверить» или «загрузить», эти блоки помещают содержащийся в них текст в Sketch.
Приведенные выше блоки VAR используются для ссылки на переменные, созданные с помощью блоков кода C++:
Блок ‘C++ Declarations’ предоставляет способ размещения блоков кода над функциями ‘setup()’ и ‘loop()’ в Arduino Sketch. Здесь можно разместить только ‘C++ Code Block’ и ‘C++ Code Line’.
Использование вкладок Arduino
Среда IDE Arduino позволяет добавлять вкладки в Sketch. Поскольку ProductivityBlocks записывает текст на активную вкладку, для написания кода, который можно использовать с блоками кода, могут использоваться другие вкладки:
Примечания
- Блоки кода C++ предназначены для пользователей, которые могут программировать с кодом C++. Пользователям, не имеющим опыта программирования, рекомендуется изучить основы программирования на C++ перед их использованием.
Основы блочного программирования
Существует специальный блок под названием Program , который представляет собой весь Arduino Sketch :
После размещения одного из этих блоков на основном холсте остальную часть программы можно создать, привязав другие блоки к его соединителям. Блоки, которые не прикреплены к нему, не будут генерировать текст.
Обратите внимание, что блочные программы должны иметь только один из этих специальных блоков на основном холсте, иначе они не смогут «проверить» или «загрузить».
Типы блоков
Блоки бывают четырех видов:
1. Блок программы:
Содержит программу C++ для загрузки на плату Arduino (как описано выше).
ОСТОРОЖНОСТЬ:
- Если вы не используете модули P1, вы должны установить для параметра «Использовать модули P1» значение «false». В противном случае программный блок не запустится.
- Если вы используете модули P1, убедитесь, что на них подается питание, иначе программа не запустится.
2. Командные блоки:
Процессы, которые необходимо выполнить в программе.
3. Функциональные блоки:
Процессы, которые возвращают значение для использования в программе.
4. Блоки данных:
Переменные и константы.
Типы данных
В ProductivityBlocks есть 5 различных основных типов данных. Каждый тип имеет переменный блок и постоянный блок, чтобы идти с ним. Дополнительные сведения о переменных и константах см. на странице « Переменные и константы ».
Категории блоков
Блок Program Программа
Описание
Создает эскиз Arduino с функциями настройки и цикла.
Употребление
Используйте значение ‘true/false’, чтобы выбрать, будете ли вы использовать модули P1 в программе. Блоки, помещенные под крючок ‘setup’, завершат свои операции на этапе ‘setup’ программы Arduino. Блоки, помещенные под крючок ‘loop’, будут работать непрерывно во время фазы ‘loop’ программы Arduino.
ВНИМАНИЕ:Не выбирайте ‘true’ для ‘Использовать модули P1?’, если ваша программа не использует какие-либо модули P1 (см. Примечания ниже).
Примечания
- Если ‘Use P1 Modules’ имеет значение ‘true’, этот блок попытается запустить обнаружение модуля P1. Этот процесс будет зависать бесконечно, если нет подключенных модулей P1 или если подключенные модули P1 не питаются к ним. Это делается для того, чтобы модули P1 были готовы для вашей программы, если вы собираетесь их использовать.
- Если вы не собираетесь использовать модули P1, установите для параметра “Использовать модули P1” значение “false”.
- На холсте ProductivityBlocks может быть только один программный блок. Если в программе ProductivityBlocks имеется более одного из этих блоков, «проверка» и «загрузка» будут завершаться ошибкой до тех пор, пока лишние блоки не будут удалены.
Вкладка Control “Управление”
- if если
- if/else если/иначе
- while пока
- Do While Делайте пока
- Repeat Повторять
- Repeat with Index Повторить с индексом
- Repeat for Range Повторить для диапазона
- break ломать
if если
Описание
Выполняет набор команд только в том случае, если значение ‘condition’ равно ‘true/HIGH’.
Употребление
Поместите логическое значение в ‘условие’ и соедините нужные блоки под хуком ‘then’. Блоки, помещенные под хук ‘then’, будут запускаться только в том случае, если ‘условие’ имеет значение ‘true/HIGH’.
Примечания
- «Условие» должно иметь логический блок, подключенный к нему, иначе программа не сможет «проверить» или «загрузить».
if/else если/иначе
Описание
Выполняет набор команд, когда значение ‘condition’ равно true/HIGH’, и выполняет другой набор команд, когда ‘condition’ имеет значение ‘false/LOW’.
Употребление
Поместите логическое значение в ‘условие’ и соедините нужные блоки под хуками ‘then’ и ‘else’. Блоки, помещенные под хук ‘then’, будут запускаться, если ‘условие’ ‘true/HIGH’. Блоки, помещенные под условие ‘else’, будут выполняться, если ‘условие’ имеет значение ‘false/LOW’.
Примечания
- «Условие» должно иметь логический блок, подключенный к нему, иначе программа не сможет «проверить» или «загрузить».
While пока
Описание
Выполняет набор команд несколько раз, в то время как ‘условие’ имеет значение ‘true/HIGH’.
Употребление
Поместите логическое значение в ‘условие’ и соедините нужные блоки под хуком ‘commands’. Эти блоки будут выполняться по порядку многократно, если значение ‘condition’ не станет ‘false/LOW’. «Условие» проверяется перед каждым повторением. Если ‘условие’ ‘false/LOW’, программа выйдет из блока ‘while’. Размещение блока ‘break’ внутри ‘commands’ приведет к выходу программы из текущего блока ‘while’.
Примечания
- Если ‘условие’ блока ‘while’ всегда ‘true/HIGH’, программа не может продолжить работу над блоком ‘while’ без блока ‘break’. Обязательно дважды проверьте свое «состояние» и используйте блок «break» по мере необходимости.
Do While Делайте пока
Описание
Выполняет набор команд несколько раз, в то время как ‘условие’ имеет значение ‘true/HIGH’.
Употребление
Поместите логическое значение в ‘условие’ и соедините нужные блоки под хуком ‘commands’. Эти блоки будут выполняться по порядку многократно, если значение ‘condition’ не станет ‘false/LOW’. «Условие» проверяется после каждого повтора. Если ‘условие’ имеет значение ‘false/LOW’, программа выйдет из блока ‘Do While’. Размещение блока ‘break’ внутри ‘commands’ приведет к тому, что программа выйдет из текущего блока ‘Do While’.
Примечания
- Если «условие» блока «Do While» всегда «true/HIGH», программа не может продолжать работу над блоком «while» без блока «break». Обязательно дважды проверьте свое «состояние» и используйте блок «break» по мере необходимости.
Repeat Повторять
Описание
Выполните набор команд несколько раз в течение заданного количества раз.
Употребление
Поместите целое значение в сокет ‘times’ и подключите нужные блоки под хуком ‘commands’. Эти блоки будут работать по порядку многократно в течение заданного количества раз. Размещение блока ‘break’ внутри ‘commands’ приведет к выходу программы из текущего блока ‘Repeat’.
Примечания
- К times «временам» должен быть подключен блок, иначе программа не сможет «верифицировать» или «загружать».
Repeat with Index Повторить с индексом
Описание
Выполните набор команд несколько раз в течение заданного количества раз. Текущее количество повторов сохраняется в переменной.
Употребление
Поместите целое значение в сокет ‘times’ и подключите нужные блоки под хуком ‘commands’. Эти блоки будут работать по порядку многократно в течение заданного количества раз. Текущее количество повторов хранится в переменной, подключенной к ‘index’. Размещение блока ‘break’ внутри ‘commands’ приведет к выходу программы из текущего блока ‘Repeat with Index’.
Примечания
- К times «временам» должен быть подключен блок, иначе программа не сможет «верифицировать» или «загружать».
Repeat for Range Повторить для диапазона
Описание
Выполните набор команд несколько раз, индексируя их по диапазону значений. Текущий индекс хранится в переменной. Значения ‘start’, ‘stop’ и ‘step’ управляют диапазоном, через который проходит ‘index’.
Употребление
Поместите целочисленные значения в сокеты ‘start’, ‘stop’ и ‘step’ и подключите нужные блоки под хук ‘commands’. Эти блоки будут работать по порядку многократно для каждого числа в диапазоне, определяемом «стартом», «стопом» и «шагом». Текущий индекс хранится в переменной, подключенной к ‘index’. Размещение блока ‘break’ внутри ‘commands’ приведет к выходу программы из текущего блока ‘Repeat with Index’.
Примечания
- Блок ‘Repeat for Range’ будет разрешать любые числовые значения в сокетах ‘start’, ‘stop’ и ‘step’. Если значение ‘stop’ никогда не достигнуто, блок ‘Repeat for Range’ никогда не будет завершен. Обязательно дважды проверьте диапазон, описанный значениями ‘start’, ‘stop’ и ‘step’, прежде чем использовать этот блок.
Break ломать
Описание
Вырвитесь из блока, который повторяется.
Употребление
Размещение блока ‘break’ внутри ‘while’, ‘Do While’, ‘Repeats’ и других повторяющихся блоков приведет к тому, что программа выйдет из текущего повторяющегося блока. Когда программа сталкивается с блоком ‘break’ внутри повторяющегося блока, повторяющийся блок немедленно завершает работу, и программа продолжит работу над повторяющимся блоком.
Вкладка “Операторы”
- Comparison Blocks
- Concatenate Strings
- Bitwise Operators
- String Conversion
- ‘Not’ Operator
- Compound Operators
- Блоки сравнения
- Сцепление строк
- Побитовые операторы
- Преобразование строк
- Оператор ‘Не’
- Составные операторы
Comparison Blocks Блоки сравнения
Описание
Эти блоки возвращают логическое значение true/false, сравнивающее два входа.
Употребление
Каждый блок сравнения сравнивает два значения одного типа данных. Каждый блок сравнения имеет раскрывающееся меню для выбора типа сравнения (см. «Операторы сравнения» в справочнике Arduino). Все блоки сравнения возвращают логическое значение (‘true/false’), представляющее результат сравнения.
Ссылка
- Смотрите «Операторы сравнения» в справочнике Arduino для получения дополнительной информации.
Concatenate Strings Сцепление строк
Описание
Склейте две строковые константы или строковые переменные, чтобы создать новую строку.
Употребление
Возвращает новую строку, содержащую обе входные строки, склеенные вместе.
Примечания
- Может быть использована любая комбинация строковых констант/строковых переменных.
- Используйте экономно, чтобы повысить производительность.
Bitwise Operators Побитовые операторы
Описание
Выполнение выбранных побитовых операций с двумя числовыми значениями.
Употребление
Переместите биты числа влево/вправо или верните побитовое ‘и/или’ между двумя числовыми значениями.
Ссылка
- Для получения дополнительной информации см. «Побитовые операторы» в справочнике Arduino.
Convert to String Конвертировать в строку
Описание
Создайте строку из числового или логического значения.
Употребление
Возвращает строку, представляющую входное число/логическое значение.
Примечания
- Форматирование преобразованной строки по умолчанию является ‘base ten’ (см. String()).
‘Not’ Operator Оператор ‘Не’
Описание
Возьмем противоположность логическому значению ‘true/false/HIGH/LOW’.
Употребление
Возвращает противоположное логическому значению.
Ссылка
- Дополнительные сведения см. в разделе Логический не.
Compound Operators Составные операторы
Описание
Задайте переменную, равную результату операции, включающей себя и другое число.
Употребление
Поместите числовую переменную в сокет ‘переменная’ и еще одно числовое значение в сокет ‘value’. Используйте раскрывающийся список, чтобы выбрать нужную операцию.
Ссылка
Описание различных составных операций см. в разделе «Составные операторы» в справочнике Arduino.
Вкладка “Математика”
Arithmetic Operators Арифметические операторы
Описание
Выполняет основные математические операции над числовыми переменными и/или константами.
Употребление
Поместите два числовых значения в блок ‘Арифметический оператор’ и используйте раскрывающийся список для выбора нужной операции.
Ссылка
Описание различных операций см. в разделе «Арифметические операторы» в справочнике Arduino.
Compound Operators Составные операторы
Описание
Задайте переменную, равную результату операции, включающей себя и другое число.
Употребление
Поместите числовую переменную в сокет ‘переменная’ и еще одно числовое значение в сокет ‘value’. Используйте раскрывающийся список, чтобы выбрать нужную операцию.
Ссылка
Описание различных составных операций см. в разделе «Составные операторы» в справочнике Arduino.
abs
Описание
Верните абсолютное значение входных данных.
Ссылка
Описание функции ‘abs’ см. в разделе abs.
power
Описание
Поднимите число до возведенного в степень.
Ссылка
Описание функции ‘pow’ см. в разделе pow.
sqrt
Описание
Верните квадратный корень входных данных.
Ссылка
Описание функции ‘sqrt’ см. в разделе sqrt.
Sine синус
Описание
Верните синус входного угла.
Ссылка
Описание функции «синус» см. в разделе sin.
Cosine косинус
Описание
Верните косинус входного угла.
Ссылка
Описание функции ‘cos’ см. в разделе cos.
tangent
Описание
Верните касательную входного угла.
Ссылка
Описание функции ‘tan’ см. в разделе tan.
Random случайный
Описание
Возвращает случайное число из диапазона целочисленных значений.
Употребление
Блок вернет случайное число между ‘min’ и ‘max’-1.
Ссылка
Описание «случайной» функции см. в разделе случайные.
Map карта
Описание
Масштабируйте «входные данные» из заданного диапазона в заданный выходной диапазон.
Употребление
‘значение’ — это значение, подлежащее масштабированию. Числа в разъемах «от» определяют диапазон входного «значения», а числа в сокетах «до» определяют диапазон выхода. Результатом является число в диапазоне ‘to’, которое соответствует ‘значению’ в диапазоне ‘from’.
Ссылка
Описание функции ‘map’ см. в разделе Map.
Constrain Константа
Описание
Ограничьте выходные данные значением в определенном диапазоне.
Употребление
Блок вернет значение между ‘lower’ и ‘higher’ на основе входного ‘value’.
Ссылка
Описание функции ‘constrain’ см. в разделе constrain.
Вкладка “Время”
Millis
Описание
Возвращает количество миллисекунд с момента начала выполнения программы.
Употребление
Выводом блока является число ‘Long Integer’, которое содержит количество миллисекунд с момента запуска программы.
Примечания
- Предупреждение: выход этого блока будет переполнен (вернется к нулю), примерно через 50 дней.
- Поместите результат этого блока в переменные ‘Long Integer’.
Ссылка
Дополнительные сведения о функции ‘millis’ см. в разделе millis.
Micros
Описание
Возвращает количество микросекунд с момента начала запуска программы.
Употребление
Вывод блока представляет собой число ‘Long Integer’, которое содержит количество микросекунд с момента начала программы.
Примечания
- Предупреждение: выход этого блока переполнится (вернется к нулю) примерно через 70 минут.
- Поместите результат этого блока в переменные ‘Long Integer’.
Ссылка
Дополнительные сведения о функции ‘millis’ см. в разделе millis.
Вкладка «Переменные и константы»
Типы данных
В ProductivityBlocks существует шесть типов:
Для каждого типа существует переменный блок (вверху слева) и постоянный блок (вверху справа). Блок переменной представляет переменную в программе и может иметь редактируемое имя. Константы не имеют имени, но их значение можно редактировать.
Каждый тип также имеет форму, связанную с ним. Переменные и постоянные блоки могут использоваться везде, где есть гнездо, соответствующее их форме:
Переменные создаются автоматически всякий раз, когда к программе подключается блок переменных с новым именем. Переменные, которые не заданы, будут иметь значение по умолчанию (приведено ниже). Чтобы задать значение переменной, используйте один из блоков ‘Set Variable’:
Значения по умолчанию
Переменные, которые не задаются в программе, будут иметь значения по умолчанию:
- Integer: 0
- Long: 0UL
- Double: 0.0
- Boolean: false
- Character: ‘ ‘
- String: “”
Вкладка “Съемный носитель”
- Append to SD Добавить к SD
- Read from SD Чтение с SD
Append to SD Добавить к SD
Описание
Добавление текста в файл на SD-карте. Файл будет создан, если он еще не существует.
Употребление
Входные данные ‘File’ указывают имя файла, к которому необходимо добавить. ‘Data’ — это строковые данные для добавления. Вход ‘CS’ указывает контакт выбора чипа для нужной SD-карты. Логическое значение, прикрепленное к ‘новой строке’, решает, будет ли операция добавления файла помещать новый символ строки в конце.
Ссылка
- Для получения информации о выборе чипа SD-карты см. SDbegin.
- Этот блок использует библиотеку Arduino SD.
Read from SD Чтение с SD
Описание
Найдите позицию в файле на SD-карте и прочитайте указанное количество содержимого.
Употребление
Входные данные ‘File’ указывают имя файла для чтения. Значение ‘Seek’ — это позиция в файле, с которой начинается чтение, а «Length» указывает, сколько символов нужно прочитать из этого местоположения. Вход ‘CS’ указывает контакт выбора чипа для нужной SD-карты.
Примечания
- Во входных данных ‘File’ должен быть указан файл, существующий на SD-карте.
- Значения ‘Seek’ и ‘Length’ должны быть положительными числами.
Ссылка
- Для получения информации о выборе чипа SD-карты см. SDbegin.
- Этот блок использует библиотеку Arduino SD.
Вкладка ввода/вывода
- Blink Мигать
- Get Point Получить сигнал
- Set Point Заданное значение
- Get Analog Получить аналоговый
- Set Analog Задать аналоговый
- Toggle Digital Переключатель цифровой
- Получить точку (подтягивание)
Blink Мигать
Описание
Включите/выключите светодиод (или выбранный цифровой выходной контакт).
Употребление
Используйте ‘pin #’, чтобы выбрать, какой контакт вы хотите мигнуть (по умолчанию используется светодиодный контакт процессора для модуля P1AM-100). «Время включения» и «время выключения» определяют, как долго светодиод будет оставаться включенным / выключенным (указано в миллисекундах).
Get Point Получить сигнал
Описание
Получение состояния входного контакта модуля Arduino.
Употребление
Используйте ‘pin #’, чтобы выбрать, из какого цифрового контакта извлекать входные данные. Блок Get Point возвращает логическое значение true/false, указывающее состояние цифрового контакта.
Set Point Заданное значение
Описание
Установите состояние цифрового контакта на модуле Arduino.
Употребление
Используйте пин-код #, чтобы выбрать, какой цифровой пин-код установить. «Значение» — это желаемое состояние.
Get Analog Получить аналоговый
Описание
Извлеките значение аналогового контакта.
Употребление
Используйте ‘Pin #’, чтобы выбрать, из какого аналогового контакта извлекать входные данные. Этот блок возвращает целое значение выбранного входного контакта.
Set Analog Задать аналоговый
Описание
Задайте значение аналогового контакта.
Употребление
Используйте ‘Pin #’, чтобы выбрать, какой аналоговый контакт установить. ‘Значение’ — это требуемое заданное значение.
Toggle Digital Переключатель цифровой
Описание
Переключите состояние входного контакта модуля Arduino.
Употребление
Используйте ‘pin #’, чтобы выбрать, какой цифровой контакт включить/выключить. Если состояние контакта ‘HIGH/true’, этот блок установит для него значение ‘LOW/false’ и наоборот.
Get Point (Pullup) Получить точку (подтягивание)
Описание
Извлеките состояние входного контакта на модуле Arduino и установите его в режим «подтягивания».
Употребление
Используйте ‘pin #’, чтобы выбрать, из какого цифрового контакта извлекать входные данные. «Get Point (Pullup)» переводит контакт в режим «pullup», поэтому блок возвращает «HIGH», когда контакт не включен, и «LOW», когда контакт включен.
Ссылка
- Для получения дополнительной информации о функции «подтягивания» см. Учебные пособия по Arduino
Вкладка Serial COM
- Serial Start Начало
- Serial Print Печатать
- Serial Print Последовательная печать, готовность печати
- Serial End Отключение/сброс последовательных соединений на указанном порту
- Serial Flush Дождитесь завершения передачи данных
- Serial Read Последовательное чтение
- Serial Read String Чтение строки
- Serial Peek Быстрый взгляд
- Serial Available Серийный обзор
- Serial Available for Write Последовательный порт доступен для записи
- Serial Find Поиск
- Serial Parse Int Последовательный синтаксический анализ Int
- Serial Parse Float Последовательный синтаксический анализ Float
- Serial Set Timeout Установка тайм-аута
- Serial Event Последовательное событие
Serial Start Последовательный запуск
Описание
Установите скорость передачи данных и начните обмен данными через последовательный порт.
Употребление
Используется для начала связи через выбранный последовательный порт. Используйте вход ‘baud’ для управления скоростью и вход ‘config’ для выбора требуемой последовательной настройки.
Ссылка
- Дополнительные сведения см. в разделе Serial.begin.
Serial Print Последовательная печать
Описание
Вывод данных через последовательный порт.
Употребление
В зависимости от желаемого типа данных выберите соответствующий блок «Печать». Верхний вход ‘Строка’, ‘Число’, ‘Символ’ и т.д. — данные для печати. Логическое значение «новой строки» определяет, будет ли последовательный порт печатать новый символ строки в конце данных. Используйте ‘port’, чтобы выбрать, с какого последовательного порта печатать.
Ссылка
- Дополнительные сведения см. в разделе Serial.print.
Serial Print Последовательная печать, готовность печати
Описание
Логическое значение, указывающее, готов ли данный последовательный порт.
Употребление
Используйте ‘port’, чтобы выбрать, какой порт проверять. Логическое значение указывает, готов ли порт к использованию для чтения/записи.
Ссылка
- Для получения дополнительной информации см. if(Serial).
Serial End Отключение/сброс последовательных соединений на указанном порту
Описание
Отключение/сброс последовательных соединений на указанном порту.
Употребление
Используйте ‘port’, чтобы выбрать, какой последовательный порт отключить/сбросить.
Ссылка
- Для получения дополнительной информации см. Serial.end.
Serial Flush Дождитесь завершения передачи данных
Описание
Дождитесь завершения передачи данных с указанного последовательного порта.
Употребление
Используйте этот блок, чтобы заставить программу ждать завершения передачи данных на указанном последовательном порту.
Ссылка
- Дополнительные сведения см. в разделе Serial.flush.
Serial Read Последовательное чтение
Описание
Чтение с последовательного порта.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для чтения. Блок вернет первый байт входящих последовательных данных, если эти данные доступны.
Ссылка
- Для получения дополнительной информации см. Serial.read.
Serial Read String Чтение строки
Описание
Чтение с последовательного порта и возврат результата в виде строки.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для чтения. Блок вернет строку, содержащую доступные последовательные данные.
Ссылка
- Дополнительные сведения см. в разделе Serial.readString.
Serial Peek Серийный обзор
Описание
Посмотрите, чтобы увидеть следующий байт данных, доступных с последовательного порта.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для просмотра. Блок вернет первый байт входящих последовательных данных, если эти данные доступны, но не удалит этот байт из последовательного буфера. Это позволяет проверять и обрабатывать следующий байт данных перед сохранением их значения в блоке Read.
Ссылка
- Для получения дополнительной информации см. Serial.peek.
Serial Available Серийный обзор
Описание
Посмотрите, чтобы увидеть следующий байт данных, доступных с последовательного порта.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для просмотра. Блок вернет первый байт входящих последовательных данных, если эти данные доступны, но не удалит этот байт из последовательного буфера. Это позволяет проверять и обрабатывать следующий байт данных перед сохранением их значения в блоке Read.
Ссылка
- Для получения дополнительной информации см. Serial.peek.
Serial Available for Write Последовательный порт доступен для записи
Описание
Получите количество байтов (символов), доступных для записи в последовательном буфере.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для проверки. Блок вернет количество байтов (символов), доступных для записи в последовательный буфер, и не заблокирует никаких операций записи.
Ссылка
- Для получения дополнительной информации см. Serial.availableForWrite.
Serial Find Поиск
Описание
Считывание данных из последовательного буфера до тех пор, пока не будет найден целевой символ.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для чтения. Значение ‘target’ — это символ, который нужно найти в буфере. Блок возвращает ‘true/false’ в зависимости от того, найден ли ‘target’.
Ссылка
- Для получения дополнительной информации см. Serial.find.
Serial Parse Int Последовательный синтаксический анализ Int
Описание
Получите следующее допустимое целое число в последовательном буфере.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для чтения. Блок вернет первое допустимое целое число из последовательного входного буфера (если только время ожидания не истекло). ‘lookahead’ указывает, как выполнять синтаксический анализ, в то время как ‘ignore’ является символом, который следует игнорировать при синтаксическом анализе. Для получения информации о значениях ‘lookahead’ смотрите ссылку ниже.
Ссылка
- Дополнительные сведения см. в разделе Serial.parseInt.
Serial Parse Float Последовательный синтаксический анализ Float
Описание
Получите следующее допустимое число с плавающей запятой в последовательном буфере.
Употребление
Используйте значение ‘port’, чтобы выбрать порт для чтения. Блок вернет первое допустимое число с плавающей запятой из последовательного входного буфера (если только время ожидания не истекло). ‘lookahead’ указывает, как выполнять синтаксический анализ, в то время как ‘ignore’ является символом, который следует игнорировать при синтаксическом анализе. Дополнительные сведения о значениях ‘lookahead’ см. в разделе Serial.parseFloat.
Примечания
- При хранении выходных данных этого блока в переменной используйте тип переменной ‘Double’ (см. Переменные и константы))
Ссылка
- Для получения дополнительной информации см. Serial.parseFloat.
Serial Set Timeout Установка Тайм-аута
Описание
Установите максимальное количество миллисекунд для ожидания последовательных данных на указанном порту.
Употребление
Используйте значение ‘port’ для выбора порта для настройки. Входные данные ‘time (msec)’ — это желаемое количество миллисекунд, которое нужно ждать.
Ссылка
- Дополнительные сведения см. в разделе Serial.setTimeout.
Serial Event Последовательное событие
Описание
Функция, вызываемая при наличии данных.
Употребление
Используется для ответа при наличии последовательных данных. Поместите блоки, предназначенные для обработки последовательных данных, в этот блок, и они будут работать, когда последовательные данные станут доступными.
Примечания
- Этот блок применяется только к последовательному порту по умолчанию (в большинстве случаев к последовательному порту USB).
Ссылка
- Дополнительные сведения см. в разделе serialEvent.
C++ Code Blocks
Блоки кода C++
Описание
Эти блоки позволяют внедрить собственный код C++ в блочную программу.
Употребление
Используйте блоки ‘C++ Code Block’ и ‘C++ Code Line’ для написания кода C++ непосредственно в блочную программу. Когда ProductivityBlocks генерирует код в Arduino Sketch с помощью кнопок «проверить» или «загрузить», эти блоки помещают содержащийся в них текст в Sketch.
Приведенные выше блоки VAR используются для ссылки на переменные, созданные с помощью блоков кода C++:
Блок ‘C++ Declarations’ предоставляет способ размещения блоков кода над функциями ‘setup()’ и ‘loop()’ в Arduino Sketch. Здесь можно разместить только ‘C++ Code Block’ и ‘C++ Code Line’.
Использование вкладок Arduino
Среда IDE Arduino позволяет добавлять вкладки в Sketch. Поскольку ProductivityBlocks записывает текст на активную вкладку, для написания кода, который можно использовать с блоками кода, могут использоваться другие вкладки:
Примечания
- Блоки кода C++ предназначены для пользователей, которые могут программировать с кодом C++. Пользователям, не имеющим опыта программирования, рекомендуется изучить основы программирования на C++ перед их использованием.
Вкладка “Настройка P1”
- Программа
- Перекличка
- Модули печати
- Настройка сторожевого пса
- Запуск сторожевого пса
- Стоп Сторожевой пес
- Сторожевой пес для домашних животных
Начало работы
ProductivityBlocks – это графический инструмент программирования блоков, который пишет код C++ в Arduino IDE.
Каждый блок представляет собой часть программы, которая будет работать на процессорах Arduino.
Создание программы
Чтобы создать программу, используйте вкладки в левой части приложения, чтобы выбрать категорию блоков:
Затем щелкните и перетащите нужный блок на основной холст. Блоки защелкиваются на месте при перетаскивании достаточно близко к соединителю правильной формы.
Чтобы удалить блок с основного холста, перетащите его на вкладки в левой части экрана и отпустите.
Сохранение и загрузка программ
Используйте кнопки «Сохранить» или «Сохранить как», чтобы сохранить блочную программу. Чтобы загрузить блочную программу, выберите «Открыть» и выберите файл «.apb», который вы хотите загрузить.
Примеры программ
Если вы установили ProductivityBlocks с помощью установщика в выпусках,у вас должны быть примеры программ, расположенные в
…/Documents/Arduino/ProductivityBlocks/Examples
Загрузка программы
Заметка: Перед загрузкой или проверкой блочной программы проверьте настройки в Arduino IDE в разделе «>файлы». Если установлен флажок «Сохранить при проверке или загрузке», кнопки «Подтвердить» и «Загрузить» перезапишут ваш текущий Arduino Sketch.
После создания блочной программы нажмите кнопку ‘Verify’, чтобы проверить сгенерированный C++ код:
Когда программа будет готова, используйте кнопку «Загрузить», чтобы нажать программу на подключенную плату Arduino.
Основы блочного программирования
Существует специальный бок под названием Program, который представляет собой целый Arduino Sketch:
После размещения одного из этих блоков на основном холсте остальная часть программы может быть создана путем прикрепления других блоков к ее разъемам. Блоки, которые не прикреплены к нему, не будут генерировать текст.
Обратите внимание, что блочные программы должны иметь только один из этих специальных блоков в основном холсте, иначе он не сможет «проверить» или «загрузить».
Типы блоков
Существует четыре различных типа блоков:
1. Программный блок:
Содержит программу C++, загружаемую на плату Arduino (как описано выше).
ОСТОРОЖНОСТЬ:
- Если вы не используете модули P1, вы должны установить для параметра ‘Использовать модули P1’ значение ‘false’. В противном случае блок Program не будет запущен.
- Если вы используете модули P1, убедитесь, что они имеют питание, иначе программа не будет запущена.
2. Командные блоки:
Процессы, выполняемые в программе.
3. Функциональные блоки:
Процессы, возвращающие значение, используемое в программе.
4. Блоки данных:
Переменные и константы.
Типы данных
В ProductivityBlocks существует 5 различных основных типов данных. Каждый тип имеет блок переменных и постоянный блок для перехода. Для получения дополнительной информации о переменных и константах см. страницу Переменные и константы.
Примечания по использованию:
- При выборе кнопок «Проверить» или «Загрузить» ProductivityBlocks будет записывать текст на активную вкладку в Arduino IDE.
- При использовании нескольких экземпляров интегрированной среды разработки Arduino (с несколькими открытыми окнами) каждое окно может иметь отдельный экземпляр ProductivityBlocks, работающий с ним. Обратите на это внимание при открытии ProductivityBlocks для каждого окна Arduino IDE, чтобы отслеживать это сопряжение.
Полезные ссылки:
P1AM CPU Tab
Вкладка процессора P1AM
- Print FW Version Версия для печати FW
- Set PCU LED Установить PCU LED
Print FW Version Версия для печати FW
Описание
Распечатайте версию встроенного ПО процессора P1AM.
Употребление
Используйте этот блок для печати текущей версии встроенного ПО на последовательном мониторе.
Примечания
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Set PCU LED
Установить PCU LED
Описание
Включите/выключите светодиод P1AM-CPU.
Употребление
«Заданное значение» — это значение, на которое будет установлено состояние индикатора ЦП. ‘true/HIGH’ включит светодиод, а ‘false/LOW’ выключит светодиод.
P1 Module Config
Вкладка “Конфигурация модуля P1”
- Read Status Статус чтения
- P1 Module Configuration Настройка модулей P1
Read Status Статус чтения
Описание
Получение байта состояния из модуля P1.
Употребление
Возвращает целое число (8 бит/байт), содержащее ‘Byte Number’ состояния модуля P1 в ‘slot’.
Примечания
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
P1 Module Configuration Конфигурация модуля P1
Описание
Настройте параметры модуля аналогового ввода P1.
Употребление
Модули аналогового ввода P1 могут быть сконфигурированы с требуемыми настройками перед их использованием для считывания аналоговых входных данных. В зависимости от конфигурируемого модуля для управления параметрами аналогового канала используются различные блоки конфигурации модуля.
Параметры справа от каждого блока конфигурации должны быть заполнены одним байтом данных, который соответствует желаемому параметру. Чтобы настроить модуль, просто выберите нужные значения из выпадающих меню:
Примечания
- Чтобы использовать эти блоки, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
- Эти блоки должны использоваться в разделе setup «установка» вашей программы.
- Блоки конфигурации модуля (на фото выше) должны использоваться один раз для каждого аналогового модуля ввода в вашей программе.
- P1-08ADL-1, P1-08ADL-2, P1-04ADL-1 и P1-04ADL-2 настроены с помощью блока «Настройка P1-AD».
Ссылка
Для получения дополнительной информации о настройках аналогового модуля P1 см. документацию P1AM здесь. Каждый модуль имеет свою собственную документацию для своих конфигурационных данных.
Вкладка ввода/вывода P1
- P1 HSC Module Мигание модуля P1
- Get Points Получайте баллы
- Set Points Заданные точки
- Get Point Получить балл
- Set Point Заданное значение
- Get Analog Получить аналоговый
- Set Analog Набор аналоговых
- Read Temperature Считывание температуры
P1 Module Blink Module Мигание модуля P1
Описание
Создайте базовую программу, которая мигает цифровым выходом дискретного выходного модуля P1.
Употребление
Выберите «Слот» модуля и нужный вывод «Точка», чтобы мигнуть. «Время включения» и «время выключения» дают продолжительность, в течение которой выходные данные будут оставаться включенными / выключенными.
Примечания
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Get Points Получайте баллы
Описание
Одновременно извлекайте все точки ввода из модуля цифрового ввода P1. Все точки ввода упакованы в двоичные цифры целого числа.
Употребление
Используйте ‘Slot’, чтобы выбрать, из какого модуля цифрового ввода P1 извлекать входные данные. Вывод блока ‘Get Points’ представляет собой целое число, двоичные цифры которого являются значениями входных точек (начиная с точки 1).
Примечания
- Этот блок будет работать только с модулями цифрового ввода P1.
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Set Points Заданные точки
Описание
Одновременная установка всех выходных точек на цифровом выходном модуле P1. Требуемые заданные значения точек содержатся в двоичных цифрах целого числа.
Употребление
Используйте «Слот», чтобы выбрать, какой модуль цифрового вывода P1 установить. ‘Value’ – это целое число, двоичные цифры которого будут записаны (по порядку) в выходные точки модуля цифрового облака P1.
Примечания
- Этот блок будет работать только с модулями цифрового вывода P1.
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Get Point Получить балл
Описание
Получение состояния точки ввода в модуле цифрового ввода P1.
Употребление
Используйте ‘Slot’, чтобы выбрать, из какого модуля цифрового ввода P1 извлекать входные данные. ‘Точка’ выбирает, какую точку считывать из модуля цифрового ввода P1.
Примечания
- Этот блок будет работать только с модулями цифрового ввода P1.
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Set Point Заданное значение
Описание
Задайте состояние выходной точки на цифровом выходном модуле P1.
Употребление
Используйте «Слот», чтобы выбрать, какой модуль цифрового вывода P1 установить. ‘Точка’ является желаемой выходной точкой модуля цифрового выхода P1. Для выбранной точки вывода устанавливается значение ‘Value’.
Примечания
- Этот блок будет работать только с модулями цифрового вывода P1.
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Get Analog Получить аналоговый
Описание
Получение значения точки ввода из аналогового модуля ввода P1.
Употребление
Используйте ‘Slot’, чтобы выбрать, из какого аналогового модуля ввода P1 извлекать входные данные. ‘Точка’ – это желаемая аналоговая входная точка/канал аналогового входного модуля P1. Этот блок возвращает значение выбранной точки/канала ввода.
Примечания
- Этот блок будет работать только с аналоговыми модулями ввода P1.
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Set Analog Набор аналоговых
Описание
Задайте значение точки/канала аналогового выходного модуля P1.
Употребление
Используйте ‘Slot’, чтобы выбрать, какой аналоговый выходной модуль P1 установить. ‘Точка’ – это желаемая аналоговая выходная точка/канал аналогового выходного модуля P1. ‘Значение’ — это требуемое заданное значение.
Примечания
- Этот блок будет работать только с аналоговыми выходными модулями P1.
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
Read Temperature Считывание температуры
Описание
Получение значения входной температурной точки из аналогового температурного модуля P1.
Употребление
Используйте ‘Slot’, чтобы выбрать, из какого аналогового температурного модуля P1 извлекать входные данные. ‘Точка’ – это желаемая аналоговая входная точка/канал аналогового температурного модуля P1. Этот блок возвращает значение температуры выбранной входной точки/канала.
Примечания
- Этот блок будет работать только с аналоговыми модулями ввода P1.
- Чтобы использовать этот блок, в вашем программном блоке должно быть установлено значение «Использовать модули P1» в значение «true».
- Чтобы считывать температуру в правильных устройствах, сначала должен быть настроен температурный модуль P1. См. раздел ‘Конфигурация модуля P1’.
Вкладка P1 HSC
- P1 HSC Module Модуль P1 HSC
- Configure Channels Настройка каналов
- Read Inputs Чтение входных данных
- P1 HSC Channel Канал P1 HSC
- Read Position Читать позицию
- Set Position Установить позицию
- Set Rollover Position Установка положения ролловера
- Set ZReset Value Задать значение ZReset
- Read Alerts Чтение оповещений
P1 HSC Module Модуль P1 HSC
Описание
Создайте новый объект ‘P1_HSC_Module’ в заданном слоте.
Употребление
Используется для создания и инициализации объекта ‘P1_HSC_Module’, используя ‘slot’ для указания номера слота. Значение ‘HSC’ будет новой именованной переменной, содержащей объект ‘P1_HSC_Module’.
Примечания
- «P1_HSC_Module» — это особый тип данных в ProductivityBlocks с уникальной формой.
- Каждая переменная ‘P1_HSC_Module’ содержит два канала и другие данные для программирования физического модуля P1-02HSC с использованием процессора P1AM-100.
- Перед использованием переменной ‘P1_HSC_Module’ для настройки или чтения модуля P1-02HSC используйте команду Настройка каналов.
Configure Channels Настройка каналов
Описание
Настройка каналов объектной переменной ‘P1_HSC_Module’. Этот блок обновляет конфигурацию канала подключенного модуля P1-02HSC.
Употребление
Используется для инициализации каналов физического модуля P1-02HSC. Поместите нужную переменную ‘P1_HSC_Module’ во входные данные ‘HSC’, чтобы указать, какой модуль необходимо настроить. После того, как вы создали переменные ‘P1_HSC_Channel’ с нужными настройками, поместите их во входы ‘Chan 1’ или ‘Chan 2’, чтобы настроить оба канала модуля P1-02HSC.
Примечания
- Этот блок необходимо использовать для придания физическому модулю P1-02HSC его конфигурации перед запуском.
Read Inputs Чтение входных данных
Описание
Считывание 8-битного состояния всех входных данных переменной ‘P1_HSC_Module’ или чтение 4-битного состояния четырех входов переменной ‘P1_HSC_Channel’.
Употребление
Используется для считывания всех битов входного состояния (растровых по порядку) переменной ‘P1_HSC_Module’. Эти блоки возвращают целое число, биты которого содержат состояние входных данных модуля. Значение ‘HSC’ указывает, какой модуль считывать, а значение ‘Channel’ указывает, какой канал.
Битовые сопоставления:
Входы считывания (HSC):
бит | ценность |
бит 1 | 1А |
бит 2 | 1Б |
бит 3 | 1З |
бит 4 | 3ИН |
бит 5 | 2А |
бит 6 | 2Б |
бит 7 | 2З |
бит 8 | 4ИН |
Входы чтения (канал):
бит | канал 1 | канал 2 |
бит 1 | 1А | 2А |
бит 2 | 1Б | 2Б |
бит 3 | 1З | 2З |
бит 4 | 3ИН | 4ИН |
Примечания
- Эти блоки могут использоваться независимо друг от друга.
- Второй блок считывает только биты состояния одного «канала», в то время как первый считывает биты состояния обоих каналов.
Ссылка
- Для получения информации о входных данных модуля P1-02HSC посетите интернет-магазин AutomationDirect.
P1 HSC Channel Канал P1 HSC
Описание
Создайте новый объект ‘P1_HSC_Channel’ в заданном слоте.
Употребление
Используется для создания и инициализации объекта ‘P1_HSC_Channel’, используя ‘slot’ для указания номера слота. Значение ‘Channel’ будет новой именованной переменной, содержащей объект ‘P1_HSC_Channel’. Используйте ‘channel’, чтобы указать, какой канал создаваемого модуля. Остальные аргументы используются для указания конфигурации канала.
Примечания
- «P1_HSC_Channel» — это особый тип данных в ProductivityBlocks с уникальной формой.
- Каждая переменная ‘P1_HSC_Channel’ используется для программирования физического модуля P1-02HSC с использованием процессора P1AM-100.
- Перед использованием переменной ‘P1_HSC_Channel’ для настройки или чтения модуля P1-02HSC используйте настройка каналов.
Read Position Читать позицию
Описание
Считывание положения канала на модуле P1-02HSC.
Употребление
Используйте ‘Channel’, чтобы указать, какую переменную ‘P1_HSC_Channel’ читать. Этот блок возвращает целое число, задающее текущее положение указанного канала.
Примечания
- Этот блок можно использовать с блоком Get Channel при использовании переменной ‘P1_HSC_Module’.
Set Position Установить позицию
Описание
Установка положения канала на модуле P1-02HSC.
Употребление
Используйте ‘Channel’, чтобы указать, какую переменную ‘P1_HSC_Channel’ задать. Этот блок задает текущее положение указанного канала на значение ‘counts’.
Примечания
- Этот блок можно использовать с блоком Get Channel при использовании переменной ‘P1_HSC_Module’.
Set Rollover Position Установка положения ролловера
Описание
Установка положения опрокидывания канала на модуле P1-02HSC.
Употребление
Используйте ‘Channel’, чтобы указать, какую переменную ‘P1_HSC_Channel’ задать. Этот блок задает положение, в котором указанный канал будет переворачиваться (сбрасываться до 0). Используйте значение ‘counts’, чтобы указать, куда нужно перейти.
Примечания
- Этот блок можно использовать с блоком Get Channel при использовании переменной ‘P1_HSC_Module’.
Set ZReset Value Задать значение ZReset
Описание
Установите положение ‘ZReset’ канала на модуле P1-02HSC.
Употребление
Используйте ‘Channel’, чтобы указать, какую переменную ‘P1_HSC_Channel’ задать. Этот блок задает положение, в котором указанный канал будет Z-Reset. Используйте значение ‘counts’, чтобы указать, где сбросить.
Примечания
- Этот блок можно использовать с блоком Get Channel при использовании переменной ‘P1_HSC_Module’.
Read Alerts Чтение оповещений
Описание
Считывание бита оповещения для канала модуля P1-02HSC.
Употребление
Используйте ‘Channel’, чтобы указать, какую переменную ‘P1_HSC_Channel’ задать. Этот блок возвращает состояние бита оповещения для указанного канала.
Примечания
- Этот блок можно использовать с блоком Get Channel при использовании переменной ‘P1_HSC_Module’.
- Для получения дополнительной информации о бите оповещения, пожалуйста, обратитесь к документации по модулю P1.
P1 PWM Tab P1 ШИМ вкладка
- Configure P1-PWM Настройка P1-PWM
- Write PWM Запись ШИМ
- Write PWM Frequency Частота записи ШИМ
- Write PWM Duty Cycle Рабочий цикл записи ШИМ
- Write PWM Dir Запись ШИМ-ре
Configure P1-PWM Настройка P1-PWM
Описание
Настройте каналы модуля P1 PWM.
Употребление
Каждый канал модуля P1 PWM может быть настроен на желаемые настройки перед использованием. Параметры ‘Channel’ справа от блока должны быть заполнены одним байтом данных, который соответствует желаемой настройке. Чтобы выбрать соответствующие значения параметров, пожалуйста, ознакомьтесь с документацией, найденной здесь. https://facts-engineering.github.io/modules/P1-04PWM/P1-04PWM.html
Используйте таблицу с надписью “Данные конфигурации модуля”.
Ссылка
Для получения информации о настройках P1-PWM, пожалуйста, обратитесь к документации P1AM здесь.
Write PWM Запись ШИМ
Описание
Запишите частоту и рабочий цикл канала модуля P1-PWM.
Употребление
Используется для установки значения частоты и рабочего цикла модуля P1-PWM в нужном слоте. Заданные значения задаются параметрами Frequency’ and Duty (‘Частота’ и ‘Duty’). Используйте ‘Slot’, чтобы указать, в каком слоте существует ШИМ, и используйте ‘Point’, чтобы указать, какой канал.
Примечания
- Обязательно настройте модуль P1-PWM перед установкой частоты/рабочего цикла.
Write PWM Frequency Частота записи ШИМ
Описание
Запишите частоту канала модуля P1-PWM.
Употребление
Используется для установки значения частоты и рабочего цикла модуля P1-PWM в нужном слоте. Заданное значение задается ‘Частота’. Используйте ‘Slot’, чтобы указать, в каком слоте существует ШИМ, и используйте ‘Point’, чтобы указать, какой канал.
Примечания
- Обязательно настройте модуль P1-PWM перед установкой частоты.
Write PWM Duty Cycle Рабочий цикл записи ШИМ
Описание
Запишите рабочий цикл канала модуля P1-PWM.
Употребление
Используется для установки рабочего цикла модуля P1-PWM в нужном слоте. Заданное значение задается значением ‘Duty’. Используйте ‘Slot’, чтобы указать, в каком слоте существует ШИМ, и используйте ‘Point’, чтобы указать, какой канал.
Примечания
- Обязательно настройте модуль P1-PWM перед установкой рабочего цикла.
Write PWM Dir Запись ШИМ-ре
Описание
Задайте направление (DIR) канала модуля P1-PWM.
Употребление
Используется для задания направления модуля P1-PWM в нужном слоте. Направление задается на значение ‘DIR’. Используйте ‘Slot’, чтобы указать, в каком слоте существует ШИМ, и используйте ‘Point’, чтобы указать, какой канал.
Примечания
- Обязательно настройте модуль P1-PWM перед настройкой DIR.
Comments Tab Вкладка “Комментарии”
- Comment Комментарий
- Проставка
Comment Комментарий
Описание
Прокомментируйте блочную программу.
Употребление
Используется для документирования блочной программы. Каждый блок также создает комментарий C++.
Spacer Проставка
Описание
Создание пространств в блочной программе для разделения блоков.
Употребление
Поместите их в блочную программу, чтобы создать разделение между разделами блочной программы.
Примечания
- Эти блоки не влияют на генерацию кода C++.
Примечания по использованию:
- При выборе кнопок «проверить» или «загрузить» ProductivityBlocks запишет текст на активную вкладку в Arduino IDE .
- При использовании нескольких экземпляров Arduino IDE (с несколькими открытыми окнами) в каждом окне может работать отдельный экземпляр ProductivityBlocks. Обратите внимание на это, когда вы открываете ProductivityBlocks для каждого окна Arduino IDE, чтобы вы могли отслеживать это сопряжение.
https://facts-engineering.github.io/
Обзор и установка
ProductivityOpen P1AM-100 — это платформа автоматизации, совместимая с модулями ввода-вывода серии Productivity1000, платами серии P1AM и платами формата Arduino MKR. Его можно запрограммировать с помощью Arduino IDE. На плате используется микроконтроллер SAMD21G18, такой как Arduino MKRZERO и другие подобные платы.
Установите Arduino IDE версии 1.8.7 или выше. Рекомендуем актуальную версию на сайте Arduino . После того, как вы установили Arduino IDE, вам нужно будет следовать одному из методов установки библиотеки и инструкциям по установке менеджера плат, чтобы начать работу с P1AM-100.
Этот процесс установки потребует подключения к Интернету на всем протяжении. Если вам нужен альтернативный метод установки для компьютеров, не подключенных к Интернету или имеющих другие ограничения, следуйте инструкциям по этой ссылке.
Установка библиотеки P1AM-100
Установить из менеджера библиотек
- В Arduino IDE перейдите к
Эскиз > Включить библиотеку > Управление библиотеками
- Введите P1AM в поле поиска
- Нажмите кнопку установки в окне библиотеки P1AM.
*** ИЛИ ***
Установить из архива
- Нажмите зеленую кнопку с надписью Клонировать или загрузить на этой странице репозитория .
- Выберите Загрузить ZIP
- В Arduino IDE перейдите к
Эскиз > Включить библиотеку > Добавить библиотеку .ZIP
- Перейдите к загруженному ZIP-файлу в открывшемся окне.
Установка менеджера досок
- Запустите Arduino IDE и выберите
Файл > Настройки
- Входить
в поле « Дополнительные URL-адреса диспетчера плат ». Вы можете добавить несколько URL-адресов, разделяя их запятыми.
- Откройте диспетчер досок из
Инструменты > Доска > Менеджер досок
- Введите P1AM в поле поиска и установите платформу P1AM -100.
- Выбирать
Инструменты > Плата > П1АМ-100
- Перейти к
Инструменты > Порт
и выберите COM-порт для вашего P1AM-100
Ссылка на менеджера досок:
Установка драйвера
Для пользователей Windows необходимо установить драйвер устройства для P1AM-100. Для Windows 10 рекомендуется установить его.
- Загрузите установщик драйвера здесь ( В папке драйвер).
- Извлеките файл .zip на свой компьютер.
- Отключите все системы P1AM-100 от вашего ПК.
- Запустите P1AM-100_install.bat и следуйте инструкциям по установке драйвера.
П1АМ-100
ProductivityOpen P1AM-100 — это платформа автоматизации, совместимая с модулями ввода-вывода серии Productivity1000, платами серии P1AM и платами формата Arduino MKR. Его можно запрограммировать с помощью Arduino IDE. На плате используется микроконтроллер SAMD21G18, такой как Arduino MKRZERO и другие подобные платы.
Модули серии Productivity1000 предлагают несколько типов ввода-вывода промышленного класса:
- Аналоговые и температурные входы
- Аналоговые выходы
- Дискретные входы
- Дискретные выходы и реле
- Специальные модули
Модули серии Productivity1000 можно приобрести в интернет- магазине AutomationDirect.
Совместимые функции
Ниже приведены несколько функций, которые используются для связи с базовым контроллером. Просмотрите примеры, включенные в библиотеку P1AM, и исходный код, чтобы лучше понять эти функции. Если вам нужны функции для взаимодействия с модулями, перейдите на страницу вашего модуля на боковой панели.
Базовый контроллер
P1AM-100 и сопутствующая библиотека обеспечивают подключение к схеме базового контроллера. Это позволяет обмениваться данными с модулями ввода-вывода серии Productivity1000. При использовании базового контроллера необходимо обеспечить внешнее питание 24 В или использовать блок питания серии P1000.
Контакты базового контроллера
P1AM-100 использует SPI для связи с базовым контроллером. Из-за этого возможно, что контакты 8, 9 и 10 могут использоваться совместно с другими устройствами SPI. Однако A3 и A4 нельзя использовать для любого другого устройства при использовании модулей повышения производительности.
Штырь | Функция |
8 | МОСИ |
9 | КЛК |
10 | МИСО |
А3 | КС |
А4 | ПОДТВЕРЖДЕНИЕ |
Примечание: вызов AnalogRead(A3) или AnalogRead(A4) после P1.init() переопределит контакты CS и ACK и прекратит надлежащую работу базового контроллера.
Контрольный таймер базового контроллера
Базовый контроллер имеет настраиваемый сторожевой таймер, который можно использовать для сброса модулей SAMD21 и/или P1000 в базе. Если базовый контроллер не получит сообщение от SAMD21 в течение настроенного периода времени, сторожевой таймер сработает и примет меры. Это может быть полезно, если ваша программа сталкивается с непредвиденным условием. Ознакомьтесь с примерами сторожевого таймера для получения дополнительной информации о том, как использовать эту функцию.
Функции и индикаторы ЦП
Переключить переключатель
Тумблер можно использовать как обычный цифровой вход. Сам по себе он не изменяет никакого поведения, поэтому убедитесь, что вы написали код, который включает все желаемые функции. На него можно ссылаться с помощью 31 или SWITCH_BUILTIN. Установите его как ввод с помощью pinMode() и прочитайте с помощью digitalRead().
pinMode(SWITCH_BUILTIN,INPUT); //Set Swtich to be a digital input
Serial.println(digitalRead(SWITCH_BUILTIN); //Read and print out state of switch. 1 is up and 0 is down.
карта microSD
Слот для карты microSD можно использовать для чтения и записи файлов. Это может быть полезно для регистрации ошибок и сохранения любых показаний. Контакт CS — 28 или SDCARD_SS_PIN. Используйте примеры в Arduino IDE, чтобы узнать, как использовать эту функцию.
Светодиод питания
Когда этот светодиод горит, это означает, что питание SAMD21G18 подается через: USB, внешнее напряжение 24 В, контакт VIN на разъеме или источник питания серии P1000.
Базовый светодиод
Когда этот светодиод горит, это указывает на то, что на базовый контроллер подается питание, и он был инициализирован вызовом P1.init().
Примечание. Для питания базового контроллера и модулей необходимо использовать внешний источник питания 24 В или блок питания серии P1000.
Желтый светодиод
Этот светодиод является управляемым пользователем светодиодом, подобным тем, которые находятся на платах Arduino. На него можно ссылаться, используя LED_BUILTIN или 32. Им можно управлять с помощью функции digitalWrite().
pinMode(LED_BUILTIN, OUTPUT); //Set LED to be a digital output
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED on
delay(1000); // Wait 1 second
digitalWrite(LED_BUILTIN, LOW); // Turn the LED off
delay(1000); // Wait 1 second
РТК
P1AM-100 содержит встроенный RTC (часы реального времени), работающий на кристалле с частотой 32,768 кГц. RTC — это часы, которые отслеживают текущее время и могут использоваться для программирования действий в определенное время. Чтобы использовать функцию RTC, загрузите библиотеку RTCZero из диспетчера библиотек Arduino и ознакомьтесь с их примерами. Для получения более подробной информации см. их справочник по API.
Кнопка сброса
Однократное нажатие кнопки сброса можно использовать для ручного сброса выполнения кода, базового контроллера и всех модулей серии P1000.
Быстрое двойное нажатие на кнопку сброса переведет плату в режим загрузчика. Этот режим обозначается «дышащим» желтым светодиодом. Этот режим можно использовать для восстановления платы, в которой возникла серьезная ошибка из-за плохого кода. В этом состоянии COM-порт изменится, поэтому необходимо выбрать новый COM-порт в меню инструментов и повторно загрузить свой код.
Контакты расширения MKR
Функция | Пины |
GPIO | А0-А6, 0-14 |
Аналоговый вход | А0-А6 |
Аналоговый выход | А0 |
ШИМ | 0-8, 10, А3, А4 |
Прерывать | 0, 1, 4-8, А1, А2 |
СПИ | 8, 9, 10 |
I2C | 11, 12 |
UART | 13, 14 |
5В | Выход питания 5В |
Вин | Вход регулируемого питания 5 В |
ВКК | Выход питания 3,3 В |
ЗАЗЕМЛЕНИЕ | Земля |
RST | Перезагрузить |
Ареф | Ссылка на аналоговый вход |
Примечание. Контакты A3, A4 и 8-10 используются для основного контроллера.
Не превышайте суммарный ток 46 мА от контактов 0, 1 и 4–10.
Не превышайте 3,3 В на любом контакте ввода/вывода.
Не превышайте 7 мА на любом контакте ввода/вывода.
Не подавайте питание на 5V или VCC
Питание P1AM-100
Питание P1AM-100 может осуществляться несколькими способами. Когда внешнее питание 24 В или источник питания серии P1000 подключено и включено, питание от USB и VIN отключается, но линии данных по-прежнему доступны для программирования и мониторинга в обычном режиме. Кроме того, если подключены только VIN и USB, питание от USB отключается. ВНИМАНИЕ: НЕ ПОДКЛЮЧАЙТЕ ВНЕШНИЙ ИСТОЧНИК ПИТАНИЯ 24 В И ИСТОЧНИК ПИТАНИЯ СЕРИИ P1000 ОДНОВРЕМЕННО.
Источники питания серии P1000 обеспечивают фильтрацию помех, гальваническую изоляцию и простое подключение к системам P1AM. Существуют модели с входным питанием как переменного, так и постоянного тока. Блоки питания можно купить здесь.
Бюджеты мощности
Важно оценить вашу систему и определить, сколько энергии ей потребуется. Если вы используете какие-либо модули серии Productivity1000, вы должны выделить 1,25 Вт для каждого слота от внешнего источника питания 24 В или серии P1000. Если вы используете какие-либо экраны или устройства, подключенные к разъему MKR, вам следует обратиться к таблице ниже, чтобы убедиться, что вы находитесь в пределах надлежащей спецификации. В зависимости от используемого источника питания контакты VCC (3,3 В) и 5 В будут иметь разные пределы тока. Кроме того, они имеют комбинированный предел общей мощности.
Конфигурации питания системы | |||
Источник | Модули P1000 | Щиты P1AM | МКР Щиты |
USB | Икс | ✔ | ✔ |
ВИН | Икс | ✔ | ✔ |
Поставка серии P1000 | ✔ | ✔ | Икс |
Внешний 24В | ✔ | ✔ | ✔ |
Ограничения мощности заголовка MKR | |||
Источник питания | 5В | 3,3 В | Максимальная комбинированная мощность |
USB | 330 мА | 500 мА | 1,65 Вт |
VIN (контактный разъем) | 600 мА | 1А | 3,3 Вт |
Питание серии P1000 ИЛИ внешнее 24 В | 850 мА | 1,28 А | 4,25 Вт |
Справочник по API P1AM
uint8_t P1.init();
Назначение:
Инициализирует связь P1AM с модулями P1. Эта функция должна вызываться до вызова любых других функций доступа к модулю P1.
Параметры:
Нет.
Возвращаемые значения:
0–15 — количество найденных модулей P1, подключенных к P1AM.
uint32_t P1.readDiscrete(uint8_t slot, uint8_t channel = 0);
Назначение:
Считывает значения для модуля дискретного ввода. Чтобы прочитать обратно значение для определенного дискретного входа, укажите номер канала в переменной «channel». Чтобы прочитать целочисленное значение для всех дискретных входов в этом модуле, укажите значение 0 в переменной «channel».
Параметры:
- uint8_t slot — номер слота от 1 до 15 модуля дискретного ввода, который вы хотите считать.
- Канал uint8_t — конкретная точка модуля дискретного ввода, которую вы хотите считать. Задайте значение 0, чтобы считать все дискретные входные точки в целочисленном формате.
Возвращаемые значения:
32-битное значение, указывающее 1 или 0 для конкретной запрошенной точки или целочисленное значение всех точек модуля (когда «канал» = 0).
void P1.writeDiscrete(uint32_t data, uint8_t slot, uint8_t channel = 0);
Назначение:
Записывает значения в модули дискретного вывода. Для записи в определенную точку установите для переменной «данные» значение 0 или 1 и укажите дискретное значение выходной точки в переменной «канал». Для одновременной записи во все точки дискретного вывода укажите целочисленное значение в переменной «data» и установите переменную «channel» в 0.
Параметры:
- uint32_t data — значение для записи в точку дискретного вывода (0 или 1) или весь модуль (целочисленное значение).
- uint8_t slot — номер слота модуля дискретного вывода, в который вы хотите произвести запись.
- Канал uint8_t — конкретная точка модуля дискретного вывода, в которую вы хотите произвести запись. Задайте значение 0 для записи во все дискретные выходные точки в целочисленном формате.
Возвращаемые значения:
нет.
int P1.readAnalog(uint8_t slot, uint8_t channel);
Назначение:
Считывает исходное немасштабированное целочисленное значение из модуля аналогового ввода.
Параметры:
- uint8_t slot — номер слота модуля аналогового ввода, который вы хотите считать. Допустимый диапазон: 1–15.
- uint8_t channel — конкретный канал модуля аналогового ввода, который вы хотите считать. Каналы начинаются с 1.
Возвращаемые значения:
32-битное значение для указанного канала. Для 12-битных аналоговых модулей это будет значение от 0 до 4095. Для 16-битных аналоговых модулей это будет значение от 0 до 65535 или от -32768 до 32767.
float P1.readTemperature(uint8_t slot, uint8_t channel);
Назначение:
Считывает необработанное, немасштабированное значение с плавающей запятой из модуля ввода температуры.
Параметры:
- uint8_t slot — номер слота модуля ввода температуры, который вы хотите считать. Допустимый диапазон: 1–15.
- Канал uint8_t — конкретный канал модуля ввода температуры, который вы хотите прочитать. Каналы начинаются с 1.
Возвращаемые значения:
32-битное значение с плавающей запятой для указанного канала. Значение будет в градусах для конфигураций температуры и милливольтах для конфигураций напряжения.
void P1.writeAnalog(uint32_t data, uint8_t slot, uint8_t channel);
Назначение:
Запись в один канал аналогового вывода.
Параметры:
- uint32_t data — 32-битное значение, которое будет записано в указанный модуль аналогового вывода. Если модуль является 12-битным, записываемый диапазон должен быть от 0 до 4095. Если модуль является 16-битным, записываемый диапазон должен быть от 0 до 65535.
- uint8_t slot — номер слота модуля аналогового вывода, в который вы хотите произвести запись. Допустимый диапазон: 1–15.
- uint8_t channel — конкретный канал модуля аналогового вывода, на который вы хотите производить запись. Каналы начинаются с 1.
Возвращаемые значения:
нет.
void P1.readBlockData(char *buf, uint16_t len, uint16_t offset, uint8_t type);
Назначение:
Эта функция дает возможность читать из многих модулей одновременно. Это расширенная функция, которая требует вычислений размеров данных модуля для указания смещений и длин в образе данных базового контроллера. Эта функция не возвращает запрошенные значения, а вместо этого помещает их в массив «buf». Максимальный объем данных, который может быть запрошен при одном чтении, составляет 1200 байт. Если в базовом контроллере содержится более 1200 байт данных, вам придется сместиться к следующему блоку данных в базовом контроллере.
Параметры:
- char *buf — Массив данных, содержащий значения, запрошенные из буфера данных базового контроллера.
- uint16_t len — этот параметр указывает длину извлекаемых данных.
- uint16_t offset — указывает начальный байт данных буфера базового контроллера для начала чтения.
- uint8_t type — данные в базовом контроллере разделены на разные блоки для разных типов данных. Необходимо указать тип данных для чтения: DISCRETE_IN_BLOCK, ANALOG_IN_BLOCK, DISCRETE_OUT_BLOCK, ANALOG_OUT_BLOCK, STATUS_IN_BLOCK.
Возвращаемые значения:
нет.
void P1.writeBlockData(char *buf, uint16_t len, uint16_t offset, uint8_t type);
Назначение:
Эта функция дает возможность записи во многие модули одновременно. Это расширенная функция, которая требует вычислений размеров данных модуля для указания смещений и длин в образе данных базового контроллера. Максимальный объем данных, который может быть запрошен за одну запись, составляет 1200 байт. Если в базовом контроллере содержится более 1200 байт данных, вам придется сместиться к следующему блоку данных в базовом контроллере.
Параметры:
- char *buf — Массив данных, содержащий значения, записываемые в буфер данных базового контроллера.
- uint16_t len — этот параметр указывает длину записываемых данных.
- uint16_t offset — указывает начальный байт в данных буфера базового контроллера, с которого начинается запись.
- uint8_t type — данные в базовом контроллере разделены на разные блоки для разных типов данных. Вы должны указать, в какой тип данных записывать: DISCRETE_IN_BLOCK, ANALOG_IN_BLOCK, DISCRETE_OUT_BLOCK, ANALOG_OUT_BLOCK, STATUS_IN_BLOCK.
Возвращаемые значения:
нет.
void P1.writePWM(float duty, uint32_t freq, uint8_t slot, uint8_t channel);
Назначение:
Эта функция управляет модулем широтно-импульсной модуляции P1-04PWM. Для каждого канала можно установить коэффициент заполнения и частоту.
Параметры:
- Плавающая загрузка — значение с плавающей запятой в диапазоне от 0,00 до 100,00 может быть отправлено на каждый канал для рабочего цикла.
- uint32_t freq — этот параметр определяет частоту от 0 до 20 000 для каждого канала.
- uint8_t slot — указывает номер слота P1-04PWM, в который вы хотите производить запись. Допустимый диапазон: 1–15.
- Канал uint8_t — указывает канал P1-04PWM, на который вы хотите записать. Каналы начинаются с 1.
Возвращаемые значения:
нет.
void P1.writePWMDuty(float duty, uint8_t slot, uint8_t channel);
Назначение:
Эта функция позволяет изменить рабочий цикл модуля P1-04PWM при работе на текущей частоте. Чтобы изменить как коэффициент заполнения, так и частоту, используйте вместо этого функцию P1.writePWM.
Параметры:
- Плавающая загрузка — значение с плавающей запятой в диапазоне от 0,00 до 100,00 может быть отправлено на каждый канал для рабочего цикла.
- uint8_t slot — указывает номер слота P1-04PWM, в который вы хотите производить запись. Допустимый диапазон: 1–15.
- Канал uint8_t — указывает канал P1-04PWM, на который вы хотите записать. Каналы начинаются с 1.
Возвращаемые значения:
нет.
void P1.writePWMFreq(uint32_t freq, uint8_t slot, uint8_t channel);
Назначение:
Эта функция позволяет изменять частоту модуля P1-04PWM во время работы с текущим рабочим циклом. Чтобы изменить как коэффициент заполнения, так и частоту, используйте вместо этого функцию P1.writePWM.
Параметры:
- uint32_t freq — этот параметр определяет частоту от 0 до 20 000 для каждого канала.
- uint8_t slot — указывает номер слота P1-04PWM, в который вы хотите производить запись. Допустимый диапазон: 1–15.
- Канал uint8_t — указывает канал P1-04PWM, на который вы хотите записать. Каналы начинаются с 1.
Возвращаемые значения:
нет.
void P1.writePWMDir(bool data, uint8_t slot, uint8_t channel);
Назначение:
Эта функция устанавливает для канала, сконфигурированного на P1-04PWM для DIR, высокий или низкий уровень. Обычно это используется в сочетании с другим набором каналов для ШИМ, подключенным к контроллеру шагового двигателя для изменения направления.
Параметры:
- bool data — это значение устанавливает канал, сконфигурированный как DIR, как низкий (0) или высокий (1).
- uint8_t slot — указывает номер слота P1-04PWM, в который вы хотите производить запись. Допустимый диапазон: 1–15.
- Канал uint8_t — указывает канал P1-04PWM, на который вы хотите записать. Каналы начинаются с 1.
Возвращаемые значения:
нет.
uint8_t P1.printModules();
Назначение:
Эта функция выводит на последовательный монитор модули P1, обнаруженные P1AM.
Параметры:
Нет.
Возвращаемые значения:
Функция возвращает целочисленное значение, отображающее количество найденных модулей.
uint8_t P1.checkUnderRange(uint8_t slot, uint8_t channel = 0);
Назначение:
Эта функция возвращает состояние Under-Range от модуля аналогового ввода. Можно запросить статус для определенного канала или можно запросить байт состояния для всего модуля (канал = 0). Обратитесь к документации по конкретному модулю, чтобы узнать, поддерживает ли он этот элемент состояния.
Параметры:
- uint8_t slot — номер слота модуля аналогового ввода, который вы хотите считать. Допустимый диапазон: 1–15.
- uint8_t channel — конкретный канал модуля аналогового ввода, который вы хотите считать. Установите этот параметр на 0, чтобы прочитать статус для всех каналов. Допустимый диапазон: 0–4.
Возвращаемые значения: Возвращается
8-битное целое число. Значение будет 0 или 1 для определенных запросов канала. Если запрашивается состояние всего модуля (канал = 0), каждый бит байта будет соответствовать состоянию нижнего предела диапазона для этого канала (младший значащий бит — канал 1).
uint8_t P1.checkOverRange(uint8_t slot, uint8_t channel = 0);
Назначение:
Эта функция возвращает статус Over-Range от модуля аналогового ввода. Можно запросить статус для определенного канала или можно запросить байт состояния для всего модуля (канал = 0). Обратитесь к документации по конкретному модулю, чтобы узнать, поддерживает ли он этот элемент состояния.
Параметры:
- uint8_t slot — номер слота модуля аналогового ввода, который вы хотите считать. Допустимый диапазон: 1–15.
- uint8_t channel — конкретный канал модуля аналогового ввода, который вы хотите считать. Установите этот параметр на 0, чтобы прочитать статус для всех каналов. Допустимый диапазон: 0–4.
Возвращаемые значения: Возвращается
8-битное целое число. Значение будет 0 или 1 для определенных запросов канала. Если запрашивается состояние всего модуля (канал = 0), каждый бит байта будет соответствовать статусу превышения диапазона для этого канала (младший значащий бит — канал 1).
uint8_t P1.checkBurnout(uint8_t slot, uint8_t channel = 0);
Назначение:
Эта функция возвращает статус перегорания из модуля аналогового ввода. Можно запросить статус для определенного канала или можно запросить байт состояния для всего модуля (канал = 0). Обратитесь к документации по конкретному модулю, чтобы узнать, поддерживает ли он этот элемент состояния.
Параметры:
- uint8_t slot — номер слота модуля аналогового ввода, который вы хотите считать. Допустимый диапазон: 1–15.
- uint8_t channel — конкретный канал модуля аналогового ввода, который вы хотите считать. Установите этот параметр на 0, чтобы прочитать статус для всех каналов. Допустимый диапазон: 0–4.
Возвращаемые значения: Возвращается
8-битное целое число. Значение будет 0 или 1 для определенных запросов канала. Если запрашивается состояние всего модуля (канал = 0), каждый бит байта будет соответствовать состоянию выгорания для этого канала (младший значащий бит — канал 1).
uint8_t P1.check24V(uint8_t slot);
Назначение:
Эта функция возвращает состояние 24 В пост. тока от модуля. Обратитесь к документации по конкретному модулю, чтобы узнать, поддерживает ли он этот элемент состояния.
Параметры:
- uint8_t slot — номер слота модуля, который вы хотите прочитать. Допустимый диапазон: 1–15.
Возвращаемые значения: Возвращается
8-битное целое число. Значение будет равно 0, если присутствует 24 В постоянного тока, или 1, если 24 В постоянного тока отсутствует.
char P1.readStatus(int byteNum, int slot);
Назначение:
Эта функция возвращает один байт состояния из определенного модуля.
Параметры:
- int byteNum — начальное байтовое смещение (смещение начинается с 0) байта состояния, которое вы хотите прочитать. Подробную информацию о байтах состояния см. в документации модуля.
- int slot — номер слота модуля, который вы хотите прочитать. Допустимый диапазон: 1–15.
Возвращаемые значения:
значение байта состояния возвращается в виде символа.
Функция:
void P1.readStatus(char buf[], uint8_t slot);
Назначение:
Эта функция возвращает все значения байтов состояния из определенного модуля. Данные не возвращаются из функции, а сохраняются в массиве «buf».
Параметры:
- char buf[ ] — в этом массиве хранятся значения байтов состояния, считанные из модуля.
- uint8_t slot — номер слота модуля, который вы хотите прочитать. Допустимый диапазон: 1–15.
Возвращаемые значения:
нет.
bool P1.configureModule(char cfgData[], uint8_t slot);
Назначение:
Эта функция позволяет настроить параметры модулей P1. Каждый модуль может иметь различную конфигурацию, поэтому обратитесь к документации по конкретному модулю за подробной разбивкой этих данных. Эта функция чаще используется для приложений с динамическими данными конфигурации. Для более статических настроек конфигурации используйте следующую функцию (функция перегрузки), в которой определен постоянный массив символов.
Параметры:
- char cfgData[ ] — в этом байтовом массиве хранятся данные конфигурации, отправляемые в модуль.
- uint8_t slot — номер слота модуля, который вы хотите настроить. Допустимый диапазон: 1–15.
Возвращаемые значения:
при успешном изменении конфигурации возвращается логическое значение 1.
Функция:
bool P1.configureModule(const char cfgData[], uint8_t slot);
Назначение:
Эта функция позволяет настроить параметры модулей P1. Каждый модуль может иметь различную конфигурацию, поэтому обратитесь к документации по конкретному модулю за подробной разбивкой этих данных.
Параметры:
- const char cfgData[ ] — этот постоянный массив байтов — это место, где хранятся данные конфигурации, отправляемые в модуль.
- uint8_t slot — номер слота модуля, который вы хотите настроить. Допустимый диапазон: 1–15.
Возвращаемые значения:
при успешном изменении конфигурации возвращается логическое значение 1.
void P1.readModuleConfig(char cfgData[], uint8_t slot);
Назначение:
Эта функция позволяет прочитать текущую конфигурацию указанного модуля. Каждый модуль может иметь различную конфигурацию, поэтому обратитесь к документации по конкретному модулю за подробной разбивкой этих данных.
Параметры:
- char cfgData[ ] — этот байтовый массив — это место, где будут храниться текущие данные конфигурации указанного модуля.
- uint8_t slot — номер слота модуля, из которого вы хотите прочитать конфигурацию. Допустимый диапазон: 1–15.
Возвращаемые значения:
нет.
void P1.configWD(uint16_t milliseconds, uint8_t toggle);
Назначение:
Эта функция настраивает значение сторожевого таймера в миллисекундах и параметр поведения сторожевого таймера, определяемый параметром «toggle». Значение 1 в параметре «toggle» приведет к сбросу ЦП через 5000 миллисекунд. Значение 0 останавливает ЦП до тех пор, пока не произойдет отключение питания. Чтобы использовать сторожевой таймер, его необходимо сначала настроить с помощью функции «P1.configWD()». Чтобы запустить сторожевой таймер, необходимо вызвать «P1.startWD()». Если функция «P1.petWD()» или базового контроллера не вызывается с большей скоростью, чем период времени, указанный в функции «P1.configWD()», сработает сторожевой таймер. Чтобы остановить сторожевой таймер, используйте функцию «P1.stopWD()».
Параметры:
- uint16_t миллисекунды — это значение сторожевого таймера в миллисекундах.
- uint8_t toggle — это значение определяет поведение ЦП при срабатывании сторожевого таймера. Подробности смотрите в разделе о целях выше.
Возвращаемые значения:
нет.
void P1.startWD();
Назначение:
Эта функция запускает сторожевой таймер. См. назначение функции «P1.configWD()» для получения более подробной информации об использовании функции сторожевого таймера.
Параметры:
Нет.
Возвращаемые значения:
нет.
void P1.stopWD();
Назначение:
Эта функция останавливает сторожевой таймер. См. назначение функции «P1.configWD()» для получения более подробной информации об использовании функции сторожевого таймера.
Параметры:
Нет.
Возвращаемые значения:
нет.
void P1.petWD();
Назначение:
Эта функция используется для предотвращения истечения времени ожидания сторожевого таймера, если функции ввода/вывода P1 вызываются недостаточно часто. См. назначение функции «P1.configWD()» для получения более подробной информации об использовании функции сторожевого таймера.
Параметры:
Нет.
Возвращаемые значения:
нет.
uint32_t P1.getFwVersion();
Назначение:
Эта функция используется для получения версии прошивки базового контроллера P1. Формат возвращаемого значения (в байтах) — XYZZ.
Параметры:
Нет.
Возвращаемые значения:
для версии микропрограммы возвращается 32-битное целое число.
bool P1.isBaseActive();
Назначение:
Эта функция проверяет, активен ли контроллер P1 Base. Чтобы активировать базовый контроллер P1, вызовите функцию «P1.init()».
Параметры:
Нет.
Возвращаемые значения:
Логическое значение 1 возвращается, если базовый контроллер P1 активен.
uint8_t P1.checkConnection(uint8_t numberOfModules = 0);
Назначение:
Эта функция проверяет, не пропал ли какой-либо из модулей P1. Если переменная «numberOfModules» содержит значение слота, функция вернет либо 0 (если все в порядке, либо значение первого номера слота слева, вызвавшего проблему. Например: если модулей всего 3 и значение 4 было помещено в переменную «numberOfModules», результатом будет «4». То же самое произойдет, если значение 5 будет помещено в переменную «numberOfModules», поскольку слот 3 является последним хорошим слотом. значение 0 передается в переменную «numberOfModules», функция вернет количество модулей, найденных в последней функции init (). В приведенном выше примере результаты будут 1, 2, 3, 0, если отправить значение 0 в переменной «numberOfModules», когда модулей 3.
Параметры:
- uint8_t numberOfModules — передает номер слота модуля для проверки. Отправка значения 0 возвращает количество модулей, найденных при последнем запуске функции init().
Возвращаемые значения: возвращается
8-битное значение, которое указывает либо 0, если номер слота, переданный функции, правильный, либо номер слота, в котором обнаружена проблема, если есть проблема, либо количество модулей, найденных при последней инициализации ( ) функция, если в функцию передается значение 0. См. объяснение цели выше.
uint16_t P1.rollCall(const char* moduleNames[], uint8_t numberOfModules);
Цель:
Отправить массив ожидаемых имен модулей P1 для проверки подключенных модулей P1. Имена модулей должны быть добавлены в массив moduleNames в том же порядке, что и модули (слева направо).
Параметры:
- const char* moduleNames[ ] — массив имен модулей P1. Пример: {“P1-08SIM”, “P1-08TRS”}
- uint8_t numberOfModules — количество ожидаемых модулей.
Возвращаемые значения:
16-битное значение, закодированное в двоичном формате, где каждый бит от LSB до MSB указывает на состояние ошибки (1) или отсутствия ошибки (0) для соответствующего номера слота. Значение 0 указывает на отсутствие ошибок.
void P1.enableBaseController(bool state);
Назначение:
Отключает базовый контроллер во время нормальной работы и выключает модули. ПРИМЕЧАНИЕ. Чтобы повторно включить базовый контроллер, вызовите функцию P1.init(). Вызов P1.enableBaseController(true) НЕ приведет к повторной инициализации базового контроллера.
Параметры:
- bool state — значение false отключает базовый контроллер.
Возвращаемые значения:
нет.
Ярлыки каналов
Приведенные ниже функции ведут себя так же, как и описанные выше, но позволяют использовать более описательную метку вместо значений «slot» и «channel», используя структуру channelLabel . Это позволяет вам перемещать устройства ввода-вывода и требовать изменения только в одном месте, а не в нескольких.
Пример:
Вместо выполнения P1.readDiscrete(1, 2); вы можете выполнить ту же функцию, что и P1.readDiscrete(highLevelSensor_1); со следующим кодом:
channelLabel highLevelSensor_1 = {1,2}; //Create Label for sensor at slot 1 channel 2
bool sensorState = P1.readDiscrete(highLevelSensor_1); //read the sensor
Функции, которые поддерживают эту структуру:
- uint32_t P1.readDiscrete(channelLabel label);
- void P1.writeDiscrete(uint32_t data, channelLabel label);
- int P1.readAnalog(channelLabel label);
- float P1.readTemperature(channelLabel label);
- void P1.writeAnalog(uint32_t data, channelLabel label);
- void P1.writePWM(float duty, uint32_t freq, channelLabel label);
- void P1.writePWMDuty(float duty, channelLabel label);
- void P1.writePWMFreq(uint32_t freq, channelLabel label);
- void P1.writePWMDir(bool data, channelLabel label);
- uint8_t P1.checkUnderRange(channelLabel label);
- uint8_t P1.checkOverRange(channelLabel label);
- uint8_t P1.checkBurnout(channelLabel label);
ProductivityOpen P1AM-100 — это платформа автоматизации, совместимая с модулями ввода/вывода серии Productivity 1000, щитами серии P1AM и экранами формата Arduino MKR. Его можно запрограммировать с помощью Arduino IDE. Плата использует микроконтроллер SAMD21G18, как Arduino MKRZERO и другие подобные платы.
Подробную информацию о семействе P1AM и модулях Productivity 1000 можно найти на справочной странице здесь: Документация P1AM-100
Модули серии «Производительность» предлагают несколько типов вводов/выводов промышленного класса
- Аналоговые и температурные входы
- Аналоговые выходы
- Дискретные входы
- Дискретные выходы и реле
- Специализированные модули
Библиотека P1AM предоставляет простой интерфейс для управления модулями P1000
P1.writeDiscrete(HIGH, 1, 2); //Turn slot 1 channel 2 on
float temperature = P1.readTemperature(2, 3); //Return temperature read from slot 2 channel 3
P1AM-100 можно приобрести в интернет-магазине Automation Direct
Модули производительности серии 1000 можно приобрести в интернет-магазине Automation Direct
Установка P1AM-100
Установите среду IDE Arduino версии 1.8.7 или более поздней. Мы рекомендуем текущую версию на сайте Arduino. После установки Arduino IDE вам нужно будет следовать одному из методов установки библиотеки и инструкциям по установке менеджера плат, чтобы начать работу с P1AM-100
Установка библиотеки P1AM-100
Установка из диспетчера библиотек
- В Arduino IDE перейдите в Sketch > Include Library > Manage Libraries
- Введите P1AM в поле поиска
- Нажмите кнопку установки в окне библиотеки P1AM
ИЛИ
Установка из Zip
- Нажмите зеленую кнопку с надписью Клонировать или загрузить на этой странице репозитория
- Выберите Загрузить ZIP
- В Arduino IDE перейдите в Sketch > Include Library > Add .ZIP Library
- Перейдите к ZIP-файлу, который вы загрузили в открывшемся окне
Установка менеджера плат
- Запустите Arduino и выберите File > Preferences
- Введите в поле Дополнительные URL-адреса менеджера платы. Вы можете добавить несколько URL-адресов, разделяя их запятыми.
- https://raw.githubusercontent.com/facts-engineering/facts-engineering.github.io/master/package_productivity-P1AM-boardmanagermodule_index.json
- Откройте менеджер досок из Tools > Board > Boards Manager
- Введите P1AM в поле поиска и установите платформу P1AM-100
- Выбирать Tools > Board > P1AM-100
- Перейдите и выберите COM-порт, к которому подключен P1AM-100Tools > Port
Ссылка на менеджера досок:
https://raw.githubusercontent.com/facts-engineering/facts-engineering.github.io/master/package_productivity-P1AM-boardmanagermodule_index.json
Установка драйвера
Для пользователей Windows необходимо установить драйвер устройства для установщика драйверов P1AM-100 Download здесь
Начало работы
Библиотека P1AM-100 содержит примеры, которые помогут вам начать работу. Примеры можно найти в Arduino IDE в разделе File > Examples > P1AM-100
Категория Basic содержит лучшие примеры для начала работы с библиотекой и модулями P1000. Другие категории содержат примеры, которые дополнительно исследуют функциональность P1AM-100.
Базовый контроллер
Базовый контроллер P1AM — это микросхема, которая направляет связь между модулями SAMD21 и P1000. Для питания базового контроллера и модулей требуется блок питания серии P1000 или внешний блок питания 24 В. Связь с SAMD21 основана на SPI и использует 5 контактов. Контакты 8, 9 и 10 можно использовать совместно с другими устройствами SPI. A3 и A4 не должны использоваться на любом экране, если используется функциональность базового контроллера P1AM-100
Пин | Функция |
8 | МОСИ |
9 | CLK |
10 | МИСО |
А3 | КС |
А4 | АК |
Щиты
P1AM-100 использует пины формата Arduino MKR. Контакты устойчивы только к 3,3 В, поэтому не подавайте сигналы 5 В.
Промышленные защитные экраны для P1AM-100 можно приобрести в Automation Direct здесь.
Пожалуйста, прочитайте раздел Базовый контроллер выше, чтобы определить, будет ли ваша распиновка щита работать правильно. Например, Arduino MKR RGB Shield не совместим с P1AM-100, поскольку он использует контакты A3 и A4.