|
Вопросы о Trim5 Работа и применение контроллеров с сенсорной панелью Trim5. |
|
Опции темы | Поиск в этой теме |
14.06.2017, 15:11 | #1 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Как получить доступ к FBD-журналу на PHP
День добрый, программист сделал проект для Trim5, я делаю диспетчеризацию через веб интерфейс. Переменные из проекта без проблем (почти) получаю, а вот как достать журнал, не нашел. Есть подозрения что они хранятся в файле load_files.tss, но у него непонятный бинарный формат. Есть ли какая информация по этой теме? На форуме не нашел.
Если кому интересно (может пригодится), маленькая библиотечка для чтения переменных проекта из PHP, кусками разбирался по коду примеров на C++, к сожалению устаревшему и уже не актуальному (неработоспособному), частично методом тыка, но вроде работает. Пользоваться так. В проекте накидать блоков mem, задать им имя (по этому имени в коде из PHP будем получать доступ к их значениям). Код:
<?php include_once 'segnetics.php'; $seg = new SegShm(); $seg->set('mem_3', 321); // записать целое число $seg->set('mem_2', 321.2); // записать число с плавающей точкой $seg->set('mem_1', true); // записать значение булевого флага var_dump($seg->get('mem_2')); // вывести значение переменной // вывести полный дамп значений всех переменных проекта echo('Full variable dump<br>'); $seg->dump(); ?> |
14.06.2017, 17:40 | #2 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
Контроллер свободнопрограммируемый, в нём нет понятия "Журнал" на прикладном уровне.
Проще всего пояснить на примере обычной флешки. На флешке с точки зрения драйвера USB нет файлов. Там есть непрерывный участок памяти, в который что-то записано. А вот файловая система уже знает, что и куда она пишет. Эта непрерывная память разделена на участки-секторы, из этих секторов и состоят файлы и номера секторов занесены в заголовки файлов. Так и тут, вся выделяемая в проекте память является RAW-массивом, создаваемым на этапе компоновки. И каждый блок памяти знает смещение и объём в этом массиве, с которым он, конкретный блок, работает. Добавили блок - всё съехало. Удалили другой блок - всё съехало ещё раз. Поэтому работа с этим массивом как с файлом заранее обречена на провал, если подразумеваются правки прикладного проекта. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
14.06.2017, 23:20 | #3 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
|
15.06.2017, 06:15 | #4 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
|
15.06.2017, 06:22 | #5 | |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
Цитата:
|
|
15.06.2017, 09:23 | #6 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
Короче, почти выковырял все что нужно было, сообщения из журнала получать научился, но пока дату возникновения события расшифровать не могу... Дополнил библиотечку.
Код:
include_once 'segnetics.php'; $jour = new SegJour(); // получить массив сообщений $msgArray = getAllMsg(); // вывести все сообщения $jour->dump(); А вообще, вопрос к сотрудникам, возможно ли вообще какую-то информацию получать от разработчиков? Я уже не прошу готовых библиотек, хотя бы информацию по форматам хранения данных. Если же дали возможность работать на контроллере из PHP, почему нет ни инструментов, ни информации о том, как взаимодействовать с проектом. Думаю я не один кто веб интерфейс хочет поднимать на вашем контроллере. |
15.06.2017, 10:49 | #7 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
Цитата:
Дата и событие в журнале Конструктора версии 1.00 хранится в структуре из трёх 16-разрядных слов: 1) Ч*256+М 2) ДД*1024+Событие 3) ММ*4096+ГГ Цитата:
PS. Информацию у нас получать можно, но очень многие такие вопросы связаны с глобальными потерями времени, давая лишь сиюминутный результат. Сменилась версия лоджика, чуть сменился формат таблиц исполняемого проекта и вся работа летит насмарку. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. Последний раз редактировалось Arsie, 15.06.2017 в 11:01 |
||
15.06.2017, 12:33 | #8 | ||
Senior Member
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
Цитата:
Цитата:
|
||
15.06.2017, 12:34 | #9 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
я вас понял, печально что с каждым разом структура данных будет меняться и никак она не описана, придется значит под каждый проект руками находить смещение, хотя странное решение, по моему, к примеру пейнт тоже бесчисленное множество картинок генерить может, но я всегда могу по самому файлу определить где там заголовок, где данные...
Вообщем выколупал я и время, все смещения вынес в константы, чтобы, если как вы говорите, изменится проект, поправить было проще. Кому надо, выкладываю последнюю версию. И скриншот, для примера, как оно выглядит... |
15.06.2017, 12:37 | #10 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
Не знаю кто там чего не добился... у меня была задача от руководства, я ее выполнил, оно работает, больше меня особо ничего не волнует. Выложил свои наработки для того, чтобы у кого будет подобная задача, не терял столько же времени, ну или как минимум знал в какую сторону копать, если вдруг опять "форматы файлов изменяться"
|
15.06.2017, 12:47 | #11 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Цитата:
Некуда присоединяться. Там есть возможность много чего запустить и будет работать. И Бейсик и Фортран и ассемблер и машинные коды напрямую. Мы реально заколебёмся на всё инструкции составлять. А особенно на то, о чём мы вообще понятие не имеем как это работает, но использовать можно. Откуда секунды взяли, если не секрет? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
15.06.2017, 12:55 | #12 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
|
15.06.2017, 13:02 | #13 |
Senior Member
Регистрация: Aug 2013
Сообщения: 3 785
Благодарил(а): 12 раз(а)
Поблагодарили:
194 раз(а) в 190 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
|
15.06.2017, 14:27 | #14 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Цитата:
Почему это шмемы недоступны из ассемблера и машинных кодов? Да и варианты Бейсика, с ними работающего, тоже есть. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
15.06.2017, 14:27 | #15 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
А фиг знает, программиста который проект под контроллер писал сейчас нет в офисе, завтра будет, я у него спрошу...
|
15.06.2017, 14:49 | #16 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Ответ: Как получить доступ к журналу событий из системы?
Цитата:
- Эй, Intel, где тут в базе данных хранится время? Проц же твой стоит, ты обязан знать! - WTF? __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
15.06.2017, 21:15 | #17 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к FBD-журналу на PHP
Ну так и я не волоку в вашей архитектуре, за этим сюда и пришел, программист говорит "я не знаю как в контроллере хранится журнал, я просто пишу туда сообщения", вы тоже говорите что система не знает в каком формате хранится журнал, как я понял вы подразумеваете что все же программист должен формировать структуру данных. Вообщем где концы искать, пока не понятно, завтра с программистом пообщаюсь, вместе посмотрим каким образом он пишет все же сообщения, может что-то и прояснится
|
16.06.2017, 07:24 | #18 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к FBD-журналу на PHP
Не, ничего самописного нет, макрос стандартный, в smart-е сделали список сообщений, в smlogix-е выкинули на поляну экран, там по входам эти сообщения, он типа сам сохраняет в журнал, ничего больше не делали.
|
16.06.2017, 08:51 | #19 |
Новичок
Регистрация: Jun 2017
Сообщения: 19
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Как получить доступ к FBD-журналу на PHP
Поправил пару косяков, сортировку сделал по дате, сделал ограничение по количеству выводимых сообщений (оказалось что после очистки журнала сообщения не удаляются, изменяется только переменная - количество актуальных сообщений, при желании после очистки все равно можно будет получить предыдущие).
|
20.06.2017, 11:09 | #20 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 122
Благодарил(а): 15 раз(а)
Поблагодарили:
661 раз(а) в 605 сообщениях
|
Ответ: Как получить доступ к FBD-журналу на PHP
SMArt, выражаясь понятным вам языком - это что-то типа "фреймворка" для FBD. Да, там структуру хранения задал один из наших программистов.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |