Segnetics

Вернуться   Segnetics > База знаний > Библиотека

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.06.2017, 12:00   #1
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 8 527
По умолчанию Программирование Trim5 на С++ без использования 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 Кбайт, 70 просмотров)


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

Последний раз редактировалось Gromov, 16.10.2017 в 13:13
Arsie вне форума   Ответить с цитированием
Старый 09.06.2017, 18:32   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 8 527
По умолчанию Ответ: Программирование Trim5 на С++ без использования toolchain

Не могу не отметить недостатки этого способа программирования:

Первый. Если забыть восстановить "заводские" репозитории, то первое же обновление софта контроллера приведёт к явному или неявному краху системы.

Второй. Установка компилятора приведёт к установки его более свежих библиотек. Со временем расхождение версий будет увеличиваться всё больше и больше, что тоже не очень хорошо.


__________________
Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Вкл.



Часовой пояс GMT +4, время: 20:09.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2016