Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2017, 16:26   #1
kostkost
Senior Member
 
Регистрация: Apr 2008
Сообщения: 204
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию С++ скрипты по простому

Подскажите есть ли в планах использования в лоджике кусков кода написанных на СИ или чем то подобном
насколько это сложно для дилетанта (пишу на с#)
Насколько я понимаю СМарт ведь тоже своего рода компилятор
kostkost вне форума   Ответить с цитированием
Старый 17.11.2017, 16:31   #2
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: С++ скрипты по простому

Посмотрите сюда. Но сразу скажу, что то, о чём вы говорите - не нужно почти во всех случаях применения программируемых контроллеров.

Смарт - он не тот компилятор, о котором вы думаете. Он преобразует всё то, что вы в нём редактируете - в фбд блоки. То же самое можно самостоятельно на фбд сделать, и даже больше.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 17.11.2017, 16:49   #3
kostkost
Senior Member
 
Регистрация: Apr 2008
Сообщения: 204
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: С++ скрипты по простому

я туда посмотрел там по моему программа которая ставится на тот же девайс что и фбд программа отсылает данные в порт того же компа на котором стоит данные которые потом получает фбд программа

как то через полено это

а возможно ли получить доступ к входам выходам через библиотеки лоджика?
kostkost вне форума   Ответить с цитированием
Старый 17.11.2017, 16:54   #4
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: С++ скрипты по простому

Ну а как сделать не через полено? Вам надо извлечь входные данные (для вашей подпрограммы) из лоджика, обработать их и передать обратно в лоджик. Т.е. полюбому туда-сюда надо протаскивать. Модбас на локалхосте подходит для этой задачи. Ещё можно шмемами, но для этого нужен тулчейн.

Получается, лоджик записывает в буфер модбаса, ваш код читает этот буфер, обрабатывает, снова возвращает в буфер модбаса, затем лоджик получает от туда.

Лоджик итак получает доступ к входам выходам. Если вы про возможность управлять входами/выходами из своих приложений - то это только без лоджика. Нужно будет написать свой драйвер и всё такое. Я знаю о людях, которые это делали, потому что им было очень надо (очень нетипичная задача).

Хочу подчеркнуть: в подавляющем большинстве применений контроллеров - это всё не нужно. Хватает лоджика.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 17.11.2017, 16:59   #5
kostkost
Senior Member
 
Регистрация: Apr 2008
Сообщения: 204
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: С++ скрипты по простому

А не подскажите примерное время передачи скажем 50-70 параметров
туда обратно
тормозить сильно буде программы?
хотелось бы уложится в 100 мс

учитывать надо что будет и мс и мр -ы шт 6 не меньше
kostkost вне форума   Ответить с цитированием
Старый 17.11.2017, 17:02   #6
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: С++ скрипты по простому

Я не измерял. Но это же передача модбас и оно вне лоджика. Так что эти данные будут передаваться асинхронно. Т.е. нельзя сказать, что в определённый момент времени определённые данные точно передались или нет.

А что вы хотите реализовать таким образом?


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 17.11.2017, 17:04   #7
kostkost
Senior Member
 
Регистрация: Apr 2008
Сообщения: 204
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: С++ скрипты по простому

определенного рода кас кадный регулятор
со сложным взаимодействием с упраляемыми устройствами

в фбд слишком сложно выходит )
kostkost вне форума   Ответить с цитированием
Старый 17.11.2017, 17:08   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: С++ скрипты по простому

Цитата:
Сообщение от kostkost Посмотреть сообщение
А не подскажите примерное время передачи скажем 50-70 параметров
туда обратно
тормозить сильно буде программы?
хотелось бы уложится в 100 мс
Если говорить о передачи SHMEM, то это единицы гигабайт в секунду.

50-70 параметров это максимум 280 байт.

Нет, тормозить не будет.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 17.11.2017, 17:11   #9
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: С++ скрипты по простому

Такие вещи выходят на фбд точно так же как на плюсах. Главное - сразу продумать структуру, чтобы лишнего не городить и не лепить кучу костылей и велосипедов. Я почти точно уверен, что это можно на фбд реализовать, и при этом достаточно элегантным решением. Которыми, кстати, полнится конструкторский проект по вентиляции. Из разговора с Арсением я узнал, что пока он делал конструктор вентиляции - ему ни разу не захотелось ничего написать на с++, потому что не надо.

Вам стоит оценить трудозатраты и риски. Ведь кто знает, что изменится в дальнейшем, будет ли работать ваша программа и всё остальное. Очень рекомендую вам, всё-таки не использовать вставки на с++ в основном алгоритме программы.

По моему мнению - польза линукса и с++ в контроллерах заключается в возможности написания собственного протокола обмена данными по интерфейсам, или возможности архивирования данных, бэкапов всяких. Плюс огромное непаханное поле интернет-взаимодействий, которое открывается с установкой, например, nodejs на контроллер. Но никак не в теле основной программы... Либо тогда полностью выпиливать лоджик и писать всё на С.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 21.11.2017, 22:32   #10
Gel
Senior Member
 
Регистрация: Nov 2017
Сообщения: 561
Благодарил(а): 3 раз(а)
Поблагодарили: 38 раз(а) в 30 сообщениях
По умолчанию Ответ: С++ скрипты по простому

Цитата:
Сообщение от kostkost Посмотреть сообщение
я туда посмотрел там по моему программа которая ставится на тот же девайс что и фбд программа отсылает данные в порт того же компа на котором стоит данные которые потом получает фбд программа

как то через полено это
А я бы совсем не сказал, что это через полено.

Наоборот, это получается масштабируемо и проще в отладке. Т.к. с такой схемой вы можете отладить свою программу на обычном компьютере, а потом просто ее перенести на контроллер, перекомпилировав под него.

За счет некоторого снижения эффективности передачи вы заметно выигрываете в простоте и скорости разработки, что во многих случаях важнее.

А если без необходимости пытаться экономить байты, микросекунды и т.п., то от этого будет только вред.
Gel вне форума   Ответить с цитированием
Ответ

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

Расширенный поиск

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

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



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


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024