Показать сообщение отдельно
Старый 06.06.2017, 12:00   #1
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 019
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Программирование Trim5 и SMH4 на С++ без использования toolchain

Потребуется:
  • Подключение по протоколу SFTP
  • Подключение по протоколу SSH
  • Хороший текстовый редактор с выделением синтаксиса и работой в SFTP, например sublime text
  • Выход контроллера в интернет (нужен только на этапе подготовки, в работе не нужен)


Подготовка к работе:

  1. Установить консольное подключение по SSH (логин root, пароль как задано в smlogix)
  2. cp -f /etc/apt/sources.list /etc/apt/sources.list_bak - делаем бэкап списка репозиториев
  3. echo "dns-nameservers 8.8.8.8" >> /etc/network/interfaces - это настройка dns-сервера на google
  4. echo "deb http://ftp.de.debian.org/debian/ jessie main contrib non-free" >> /etc/apt/sources.list - это добавления репозитория debian
  5. apt-get update - обновление списка пакетов репозитория. Занимает продолжительное время (около 5 минут)
  6. apt-get install libmodbus-dev - установка пакета разработчиков библиотеки протокола MODBUS
  7. apt-get install libmodbus5 - установка самой библиотеки протокола MODBUS
  8. apt-get install gpp - установка компилятора
  9. apt-get install g++ - установка компилятора
  10. apt-get install make - установка утилиты make, которая позволяет компилировать большие проекты с использованием Makefile
  11. cp -f /etc/apt/sources.list_bak /etc/apt/sources.list - восстанавливаем список репозиториев из бэкапа

На этом подготовка закончена.


Компилирование и пример программы.

Для просмотра примера в этом сообщении находятся файлы mod.cpp (файл с кодом) и Makefile, а также проект SMLogix.

Содержание Makefile:

Цитата mod: mod.cpp
g++ mod.cpp -o mod -I/usr/include/modbus -lmodbus
В первой строке находится информация о том, какой проект мы собираем, а после двоеточия - из какого файла. В данном случае, название бинарного исполняемого файла будет "mod", скомпилирован он будет из файла "mod.cpp".

Во второй строке после знака табуляции (обязательное требование) идёт инструкция компилятора. По словам:
  • g++ - указание, что используется компилятор g++, который был установлен ранее (gpp)
  • mod.cpp - название файла с исходным кодом
  • -o - аргумент компилятору, указывающий на создание исполняемого файла
  • mod - название целевого файла (должен совпадать с названием в первой строке)
  • -I/usr/include/modbus -lmodbus - ссылка на расположение установленной библиотеки modbus

---

Работа примера:
  1. Загрузить проект SMLogix в контроллер, дождаться полной загрузки проекта
  2. По SFTP закачать на контроллер папку с двумя файлами: mod.cpp и Makefile. Можно создать папку /var/mod
  3. В SSH-сессии перейти в эту папку (команда cd /var/mod)
  4. Далее написать в консоли make. Компилятор должен сразу вывести вторую строку из Makefile и «задуматься» на некоторое время (5-10 секунд). После этого снова появится строка ввода команды – это значит, что всё хорошо
  5. Запустить программу. Команда ./mod
  6. Наблюдать, как на экране контроллера побегут увеличивающиеся цифры
  7. Файлы mod.cpp и Makefile можно удалить, они больше не нужны
Вложения
Тип файла: zip project_mod.zip (14.4 Кбайт, 232 просмотров)


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Ilya J., 08.07.2019 в 15:40 Причина: Исправление ошибки примера.
Arsie вне форума   Ответить с цитированием