PDA

Просмотреть полную версию : VirtualBox Linux. Подключение к трим


maks
09.01.2018, 21:31
Трим. Вкл только LAN2, ip 192.168.1.112 маска 255.255.255.0 шлюз 192.168.1.1
В Linux настраиваю соединение - ip 192.168.1.20 маска 255.255.255.0 шлюз 192.168.1.1
Брэдмауер отключен. В win7 подключаюсь, а Linux - нет. Пинга нет, по fpt тоже не подключается.
ПК и трим соединены патч-кордом. Linux - виртуальная машина.
Делаю подключение впервые, прошу подсказать как победить.

monstr696
09.01.2018, 22:01
Трим. Вкл только LAN2, ip 192.168.1.112 маска 255.255.255.0 шлюз 192.168.1.1
В Linux настраиваю соединение - ip 192.168.1.20 маска 255.255.255.0 шлюз 192.168.1.1
Брэдмауер отключен. В win7 подключаюсь, а Linux - нет. Пинга нет, по fpt тоже не подключается.
ПК и трим соединены патч-кордом. Linux - виртуальная машина.
Делаю подключение впервые, прошу подсказать как победить.

Виртуальная машина другая подсеть, надо смотреть маршруты.

maks
10.01.2018, 08:20
Можно поподробнее? Надо ли настроивать сеть в vm?

На win7 fpt работает. На виртуальной машине - нет. Даже на флэшку проект скинуть не получается. Хотел залить, попробовать.
VB последняя версия, Extension_Pack установил. Ubuntu видит usb флэшки или надо что-то настраивать дополнительно?

Arsie
10.01.2018, 13:19
На win7 fpt работает. На виртуальной машине - нет. Даже на флэшку проект скинуть не получается. Хотел залить, попробовать.
VB последняя версия, Extension_Pack установил. Ubuntu видит usb флэшки или надо что-то настраивать дополнительно?

Макс, не обижайтесь, но хоть чуть-чуть поизучайте справку VB. Уж что-то, а подключать флешки - это даже не как 2х2, это вообще первая буква алфавита. Наверное потому у вас и сеть не работает.

maks
10.01.2018, 13:26
Читаю, что еще остается

Arsie
10.01.2018, 13:26
Читаю, что еще остается

Что за виртуалка у вас? Самосборная или наша?

maks
10.01.2018, 13:36
Так, флэшка подключилась :)
Виртуалка ваша. В винде ip, допустим, 192.168.1.200. Нужно отключать это соединение во время работы виртуальной машины? Нужно ли настраивать virtual box ethernet adaptor?
Виртуалка показывает, что кабель подключен. Адаптер NAT

поставил в vb сетевой мост - сеть заработала.
mc по ftp подключился к триму.
разбираюсь дальше

Arsie
10.01.2018, 14:18
Виртуалка ваша.

Вообще ничего тогда трогать не нужно было.

maks
10.01.2018, 14:19
Вообще ничего тогда трогать не нужно было.
спасибо

Сделал настройки на на вашем скрине. Из mc ftp работает.
Проект компилирую, потом пкм start -> выполнить. Сначала пишет таймаут соединения, потом как на картинке. mc при этом закрыт. Не понятно.

maks
10.01.2018, 15:33
Скомпилировал проект, подключился по фтп. Скопировал на трим в папку project исп. файл и файлы start.after и start.before. В программе одна строчка - запись в память, трим выводит это число.
Или программа не запустилась, или я где-то опять ошибся. Как понять?

Arsie
10.01.2018, 16:43
Или программа не запустилась, или я где-то опять ошибся. Как понять?

Зайти на контроллер по SSH, набрать top и посмотреть, запущена ли ваша программа.

Вообще, почаще мучайте гугл. Например, "linux, как увидеть список запущенных программ". Т.е. вбиваете свой вопрос и добавляете слово linux или debian.

Работу с контроллером начните с запуска и анализа работы одного из примеров. Они точно должны работать. Потом перейдёте к созданию своих собственных проектов.

PS. "Run" из предыдущего сообщения и не должен работать.

maks
10.01.2018, 17:12
Вы предлагаете начать с запуска примера и анализа. Я же у вас спрашиваю КАК запустить проект. Мне только это и нужно, дальше сам.
1. компилируется проект.
2. подкл. по фтп и в папку projects копируется исполняемый файл (со звездочкой)
3. Скопировал файлы start.after и start.before в папку projects без изменений. Брал из папки tmp проекта.
Что я сделал неправильно?

Arsie
10.01.2018, 18:36
Вы предлагаете начать с запуска примера и анализа. Я же у вас спрашиваю КАК запустить проект. Мне только это и нужно, дальше сам.
1. компилируется проект.
2. подкл. по фтп и в папку projects копируется исполняемый файл (со звездочкой)
3. Скопировал файлы start.after и start.before в папку projects без изменений. Брал из папки tmp проекта.
Что я сделал неправильно?

Всё верно. Дальше вам нужно загрузить FBD-проект, который работает с примерами. Ваша программа запустится автоматически.

maks
10.01.2018, 19:43
Не получилось. SSH top во вложении. Не пойму - проект logix не запущен? И мой проект тоже, похоже.

https://yadi.sk/i/csi9e3vO3RLfCP
Записал все действия на видео

СВМ
11.01.2018, 09:12
Так, флэшка подключилась :)
Пожалуйста, подробнее: что нужно для этого сделать?

maks
11.01.2018, 10:12
Пожалуйста, подробнее: что нужно для этого сделать?
В vb на вкладке usb поставить галку на используемой флэшке. Запустить и сделать тоже самое на работающей виртуалке

Arsie
11.01.2018, 11:04
В vb на вкладке usb поставить галку на используемой флэшке. Запустить и сделать тоже самое на работающей виртуалке

Достаточно только на работающей виртуалке))

maks
11.01.2018, 12:01
Арсений, я выше видео действий выложил. Посмотрите, пожалуйста.

СВМ
11.01.2018, 13:57
Достаточно только на работающей виртуалке))
Спасибо. Отметил. Как и где теперь её найти Midnight Commanderoм?

Gromov
11.01.2018, 15:32
Не получилось. SSH top во вложении. Не пойму - проект logix не запущен? И мой проект тоже, похоже.

https://yadi.sk/i/csi9e3vO3RLfCP
Записал все действия на видео

Кстати о ПО. Вы обновляли контроллер из последнего лоджика? В некоторых предыдущих версиях была нестабильная работа с этими скриптами.

maks
11.01.2018, 16:01
85 в конце, по-моему.

Arsie
11.01.2018, 16:03
Спасибо. Отметил. Как и где теперь её найти Midnight Commanderoм?

google: "debian как прочитать файлы с флешки?"

Я повторю сказанное мною ранее: "Вообще, почаще мучайте гугл. Например, "linux, как увидеть список запущенных программ". Т.е. вбиваете свой вопрос и добавляете слово linux или debian". Линукс в контроллере не какой-то уникальный, каких в мире больше нет. Миллионы компьютеров и устройств с таким же Линуксом, как и у нас. Миллионы людей задают в мире одни и те же вопросы и получают одни и те же ответы.

Gromov
11.01.2018, 16:15
85 в конце, по-моему.

И вы уверены, что ядро залито из этой версии, совсем недавно?

maks
11.01.2018, 22:58
И вы уверены, что ядро залито из этой версии, совсем недавно?
Да. Установил последний лоджик и обновил Трим. Вечером перепроверю

SV soft version 29
SV hard version 772
Встроенное ПО 171279-153345
Проект SMLogix 3.28.0085
kernel 4.1-171127
logix 711222
попробую еще раз обновить и залить проекты

обновил, залил. все без изменений, не работает. все как на видео

Arsie
12.01.2018, 16:45
не работает. все как на видео

Давайте разберёмся, что у вас на видео.

1) Всё правильно при создании шаблона

2) Совершенно зря всё удаляете и создаёте программу с временем жизни в микросекунды

3) Запуск программы в виртуалке. Он невозможен, т.к. виртуалка на базе x86 процессора

4) Правильно переписываете в контроллер

5) Правильно загружаете программу лоджика

Как результат, всё правильно, что не работает. К моменту запуска лоджика ваша программа либо уже отработала свои микросекунды и завершилась, либо вывалилась по ошибке, т.к. лоджик скорее всего ещё не успел создать shmem в памяти.

maks
12.01.2018, 18:11
Большое спасибо, Арсений!

https://yadi.sk/i/ubJ1IF6o3RRDMZ
добавил бесконечный цикл, в котором записываю значение в переменную.
Программа не стартует или shmem не работает? Как это можно понять?

Arsie
15.01.2018, 11:02
https://yadi.sk/i/ubJ1IF6o3RRDMZ
добавил бесконечный цикл, в котором записываю значение в переменную.
Программа не стартует или shmem не работает? Как это можно понять?

google: "Как узнать, запущена ли программа linux"

pidof mydemo

Если выдало какие-то циферки, ваша программа запущена. Если нет, то нет.

Если вы задали бесконечный цикл без отпускания ресурсов, то всё правильно, что ничего не работает. Ресурсы же не отпускаете.

Также, если копируете через sftp, нужно проверить, чтобы у рута было право запускать ваш файл.

Gromov
15.01.2018, 11:33
На мой взгляд, самый простой способ узнать о работе программы - вписать в неё функцию логгирования во внешний файл, либо в консоль и запускать из консоли, в целях отладки.
Запуск из консоли: ./filename, писать надо в той папке, где лежит программа.

maks
15.01.2018, 12:05
Спасибо, Арсений и Дмитрий. А что значит "без отпускания ресурсов"?

Arsie
15.01.2018, 12:10
Спасибо, Арсений и Дмитрий. А что значит "без отпускания ресурсов"?

Представьте, вы ведёте машину. И тут я вас толкаю в плечо и говорю "Привет!". Вы отвлекаетесь от дороги, поворачиваете голову, говорите мне "Привет!" и поворачиваетесь обратно.

А теперь представьте, что это происходит 10 раз в секунду. Как далеко мы уедем?

Это называется "ресурсы CPU". Как их отпускать уже было сделано в шаблоне, в котором вы всё удалили.

maks
15.01.2018, 15:05
#include "shm.hpp"
int main()
{
Shm mymem("./load_files.srv");//Инициализация переменных разделяемой памяти

struct timespec tv;//Структура для задания временных интервылов
tv.tv_sec = 0;
tv.tv_nsec = 100000000; //Период в наносекундах для организации задержек

while (1) //Бесконечный Главный Цикл программы
{
nanosleep(&tv, NULL);
mymem.setLong("mlong",123);
}
}

Делал по шаблону. Мне кажется, что ресурсы тут в норме.

Gromov
15.01.2018, 16:51
Попробуйте так:
#include "shm.hpp"
#define timesec 0
#define timensec 100
int main()
{
Shm mymem("./load_files.srv");//Инициализация переменных разделяемой памяти

struct timespec tw = {timesec,timensec*1000000};
struct timespec tr;

while (1) //Бесконечный Главный Цикл программы
{
nanosleep (&tw, &tr);
mymem.setLong("mlong",123);
}
}

В теле цикла можете ещё добавить строку:
printf("Данные переданы: 123"); // Вывод переданного значения в консоль

Arsie
15.01.2018, 16:58
Попробуйте так:
#include "shm.hpp"
#define timesec 0
#define timensec 100
int main()
{
Shm mymem("./load_files.srv");//Инициализация переменных разделяемой памяти

struct timespec tw = {timesec,timensec*1000000};
struct timespec tr;

while (1) //Бесконечный Главный Цикл программы
{
nanosleep (&tw, &tr);
mymem.setLong("mlong",123);
}
}

А где контроль, что шмем создан?



Делал по шаблону. Мне кажется, что ресурсы тут в норме.

Программа-то ваша запущена? Сколько процессора отъедает и сколько занимает в памяти?

maks
15.01.2018, 23:12
Скомпилировал версию Дмитрия, только добавил изменение переменной в цикле, чтобы видно было, что программа работает.
Включаю - программа не запущена.
Подключаюсь по ssh, перехожу в каталог projects, mydemo не запущена. Далее ./mydemo программа запускается, в лоджике в режиме отладки я вижу, как меняется переменная в заданных пределах.
При этом pytty "умирает", я не могу записать больше ни одну команду.
После закрытия окна pytty останавливается выполнение mydemo.

Gromov
16.01.2018, 11:32
А приложите, пожалуйста, скомпилированный файл сюда, ну и проект.

maks
16.01.2018, 13:34
Вся папка с проектом в архиве

Gromov
16.01.2018, 17:07
Итак, программа работает, сессия по ssh тоже работает нормально, просто ввод перехватывается программой, а вывода нет. Ctrl+C для выхода из этого режима (закроет программу).

Таким образом, вам нужно только адекватно прописать запуск вашего приложения в скрипты. Справитесь или посодействовать?

maks
16.01.2018, 17:59
Если не трудно, то помогите.

А почему не работают скрипты start.after и start.before? Они созданы автоматически, я их не менял.

Gromov
17.01.2018, 14:45
А почему не работают скрипты start.after и start.before? Они созданы автоматически, я их не менял.

Тут, сейчас, с ними есть проблема, мы её уже решили, скоро должен новый лоджик появиться, в котором они работают. Контроллер надо будет обновить.

maks
17.01.2018, 15:02
Тут, сейчас, с ними есть проблема, мы её уже решили, скоро должен новый лоджик появиться, в котором они работают. Контроллер надо будет обновить.
А можно подсказать решение на сегодня, если оно есть?
Для общего развития :helpsmili

Arsie
17.01.2018, 15:04
А можно подсказать решение на сегодня, если оно есть?
Для общего развития :helpsmili

Нет, на нынешнем уровне ваших знаний вы даже не поймёте, о чём речь идёт, на самом деле.

Проблема уже на самом деле давно решена была, но её забыли выпустить в релиз. Скрипты отрабатывают только при загрузки проекта лоджиком. При запуске контроллера не отрабатывают.

Gromov
17.01.2018, 15:07
Для вас - подождать релизной версии. Другие варианты слишком сложны, даже чтобы их тут описывать.

maks
17.01.2018, 17:27
Нет, на нынешнем уровне ваших знаний вы даже не поймёте, о чём речь идёт, на самом деле.

Проблема уже на самом деле давно решена была, но её забыли выпустить в релиз. Скрипты отрабатывают только при загрузки проекта лоджиком. При запуске контроллера не отрабатывают.

Т.е. переписать скрипт или добавить другой в автозагрузку (или что-то подобное) нельзя?

Неправильно выразил свою мысль. Мне не нужно перезапускать приложение при изменении проекта в лоджике. Просто запустить mydemo при включении питания. Это возможно сейчас? Или слишком сложно для начинающих?

Arsie
17.01.2018, 18:44
Т.е. переписать скрипт или добавить другой в автозагрузку (или что-то подобное) нельзя?

Неправильно выразил свою мысль. Мне не нужно перезапускать приложение при изменении проекта в лоджике. Просто запустить mydemo при включении питания. Это возможно сейчас? Или слишком сложно для начинающих?

Подождите релизной версии SMLogix.

maks
07.02.2018, 17:01
Версия от 19 января тоже не запускает скрипт. Контроллер обновил.

Gromov
08.02.2018, 14:44
Версия от 19 января тоже не запускает скрипт. Контроллер обновил.

Попробуйте вот так (http://forum.segnetics.com/showpost.php?p=39654&postcount=21) действовать.

Gromov
09.02.2018, 15:01
Вы проверили атрибуты?

maks
10.02.2018, 10:21
Вы проверили атрибуты?
Да. Изменил и все заработало. Спасибо!

maks
15.02.2018, 17:20
А что за файл settings.sqlite в папке projects?
Написал программу для обмена данными между трим и сторонним прибором. Думаю использовать БД для сохранения результатов и построения графиков и отчетов. Все хочу сделать на С, лоджик только для визуализации.
Посоветуйте, как лучше с БД поступить, куда копать?

Arsie
15.02.2018, 17:26
А что за файл settings.sqlite в папке projects?
Написал программу для обмена данными между трим и сторонним прибором. Думаю использовать БД для сохранения результатов и построения графиков и отчетов. Все хочу сделать на С, лоджик только для визуализации.
Посоветуйте, как лучше с БД поступить, куда копать?

Есть одно общее правило у системный программистов: не тронь чужое.

Предлагаю вам следовать этому правилу, оно писано кровью и потом уже нескольких поколений системщиков.

Это совет вне наличия или отсутствия каких-либо файлов в каких-либо папках. Что-то хотите использовать - делаете свою папку и творите в ней что хотите. Но только в ней. Базы, шмазы, си-плюсплазы.

maks
16.02.2018, 12:20
Sqlite установлен и с ним можно работать. Правильно?

Gromov
16.02.2018, 12:22
Sqlite установлен и с ним можно работать. Правильно?

dpkg -l | grep sqlite

Установлен и работает. Главное - не сломайте существующую базу.

maks
19.02.2018, 13:31
dpkg -l | grep sqlite

Установлен и работает. Главное - не сломайте существующую базу.
Установил sqlite3 на виртуальную машину. Не подскажете, как правильно подключать эту библиотеку к проекту?

Gromov
19.02.2018, 13:35
Не подскажу. Ни разу таким не занимался. Я всегда использовал mysql. обычная сишная библиотека. Вроде как, она везде есть. #include <mysql/mysql.h>

maks
19.02.2018, 14:58
Не подскажу. Ни разу таким не занимался. Я всегда использовал mysql. обычная сишная библиотека. Вроде как, она везде есть. #include <mysql/mysql.h>
Я хочу сделать проект, похожий на проект регистратора (там данные сохраняются на usb). Только я хотел сохранять результаты в базе, чтобы можно было делать осмысленные выборки. Например, построить график замеров за определенный месяц. Mysql слишком круто для этого, нет? Или вообще отказаться от базы и работать с архивом данных напрямую? Сам записал, сам нашел, что нужно и выдал лоджику данные для отрисовки.

Gromov
19.02.2018, 15:35
Ну sqlite подходит под ваши задачи. Тут, я думаю, только гугление примеров подойдёт. Подозреваю, что много полезного можно узнать в контексте RPi3.

maks
07.03.2018, 15:58
каково время выполнения mymem.setShort, mymem.setFloat?
Нужно для понимания, как синхронизировать работу программы и элемента "график реального времени"
Из базы я вычитываю значения и в цикле выдаю их на перья. Пока не понятно, насколько стабильно будет работать с большим числом перьев и с разными типами данных.

Arsie
07.03.2018, 16:14
каково время выполнения mymem.setShort, mymem.setFloat?
Нужно для понимания, как синхронизировать работу программы и элемента "график реального времени"
Из базы я вычитываю значения и в цикле выдаю их на перья. Пока не понятно, насколько стабильно будет работать с большим числом перьев и с разными типами данных.

Испытания не проводились. Думаю, микросекунды.

maks
07.03.2018, 16:33
Спасибо. Тогда мне не понятен следующий момент. В цикле я выдаю 30 значений с задержкой 0,1 секунда. График реального времени работает с частотой выборок 2, цикл 50мс. Все работает правильно.
Меняю в программе задержку между выдачей данных на 0,05с, ставлю частоту 1 и такая настройка полностью неработоспособна.
Вообще, я хочу добиться максимальной скорости отрисовки графика.

Arsie
07.03.2018, 16:36
Спасибо. Тогда мне не понятен следующий момент. В цикле я выдаю 30 значений с задержкой 0,1 секунда. График реального времени работает с частотой выборок 2, цикл 50мс. Все работает правильно.
Меняю в программе задержку между выдачей данных на 0,05с, ставлю частоту 1 и такая настройка полностью неработоспособна.
Вообще, я хочу добиться максимальной скорости отрисовки графика.

Не люблю делать операции по телефону. Ясно дело, что где-то у вас рассинхронизация, но это вам нужно уже ловить самостоятельно.