Segnetics

Вернуться   Segnetics > Общий

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.05.2017, 09:07   #1
Airborne
Новичок
 
Регистрация: Aug 2015
Сообщения: 29
По умолчанию Програмирование на С

Ножно ли написать программу на С или без Fbd не обойтись?
Airborne вне форума   Ответить с цитированием
Старый 30.05.2017, 09:17   #2
СВМ
Senior Member
 
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 137
По умолчанию Ответ: Програмирование на С

Цитата:
Сообщение от Airborne Посмотреть сообщение
Ножно ли написать программу на С или без Fbd не обойтись?
Для какого контроллера? Trim, SMH2Gi? Побродите по сайту, тема неоднократно обсуждалась.
СВМ вне форума   Ответить с цитированием
Старый 30.05.2017, 09:33   #3
Airborne
Новичок
 
Регистрация: Aug 2015
Сообщения: 29
По умолчанию Ответ: Програмирование на С

Пока все, что нашёл это работа с переменными для FBD. Работы с периферией не нашёл, API тоже.
Airborne вне форума   Ответить с цитированием
Старый 30.05.2017, 10:10   #4
Gromov
Сотрудник Segnetics
 
Аватара для Gromov
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 1 295
По умолчанию Ответ: Програмирование на С

Так вы для какого контроллера ищете? 2Gi?


__________________
Во всём виноваты менеджеры. (С) Эрнесто Че Гевара
Gromov вне форума   Ответить с цитированием
Старый 30.05.2017, 10:45   #5
Airborne
Новичок
 
Регистрация: Aug 2015
Сообщения: 29
По умолчанию Ответ: Програмирование на С

Есть 2Gi, но могу и другой приобрести.
Airborne вне форума   Ответить с цитированием
Старый 30.05.2017, 10:54   #6
Gromov
Сотрудник Segnetics
 
Аватара для Gromov
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 1 295
По умолчанию Ответ: Програмирование на С

Смотря какой функционал вам нужен. Из кода на си можно легко получить доступ к портам и даже дисплею. Вопрос только в том, умеете ли вы это делать. Если вы этого не умеете - руководства вроде "быстрый старт" вам не помогут. Если же вы знаете линукс и программирование в нём - то никакие руководства вам уже не нужны.
Что же касается аппаратных входов/выходов - к ним тоже есть доступ из линукса, и если управление ими через лоджик вас не устраивает - то по запросу могут быть предоставлены данные о соответствии выводов процессора аппаратным входам/выходам контроллера. И я не уверен, но вроде при этом гарантия слетает.
Поэтому, если так хочется, я рекомендую вам просто использовать лоджик, а какой-либо хитрый алгоритм управления можно на си реализовать, но управления io всё равно оставить лоджику. Так точно ничего не сгорит.


__________________
Во всём виноваты менеджеры. (С) Эрнесто Че Гевара
Gromov вне форума   Ответить с цитированием
Старый 30.05.2017, 12:03   #7
Airborne
Новичок
 
Регистрация: Aug 2015
Сообщения: 29
По умолчанию Ответ: Програмирование на С

Ну дак мне и нужно API. Си я умею.
Если есть возможность получить доступ к микросхеме, вообще хорошо.
Airborne вне форума   Ответить с цитированием
Старый 30.05.2017, 12:08   #8
Gromov
Сотрудник Segnetics
 
Аватара для Gromov
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 1 295
По умолчанию Ответ: Програмирование на С

Нет никакого API, это же не вебсервер. Есть линукс с его принятыми алгоритмами работы с системами и философия "всё есть текстовый файл". Если для вас это не является ответом на вопрос - значит вам следует изучать программирование в linux, всякие там понятия вроде fifo и так далее.


__________________
Во всём виноваты менеджеры. (С) Эрнесто Че Гевара
Gromov вне форума   Ответить с цитированием
Старый 30.05.2017, 12:36   #9
Airborne
Новичок
 
Регистрация: Aug 2015
Сообщения: 29
По умолчанию Ответ: Програмирование на С

Если мне нужно какой либо из портов поставить в единицу, то как они обозначаются на си?

Ps насчёт API вы сильно заблуждаетесь.
Airborne вне форума   Ответить с цитированием
Старый 30.05.2017, 13:01   #10
Gromov
Сотрудник Segnetics
 
Аватара для Gromov
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 1 295
По умолчанию Ответ: Програмирование на С

Чтобы писать в порт - надо отключить лоджик от порта. Писать через fifo соответствующего порта, читать там же. Что есть - лежит в /dev. Лучше использовать соответствующие библиотеки. Но даже там доступ есть не ко всему.


__________________
Во всём виноваты менеджеры. (С) Эрнесто Че Гевара
Gromov вне форума   Ответить с цитированием
Старый 30.05.2017, 13:06   #11
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
По умолчанию Ответ: Програмирование на С

Цитата:
Сообщение от Airborne Посмотреть сообщение
Если мне нужно какой либо из портов поставить в единицу, то как они обозначаются на си?

Ps насчёт API вы сильно заблуждаетесь.
Выход на GPIO мы не даём, т.к. можно устроить крах контроллеру при невыполнении условий переключения. Доступ у вас есть только к портам эзернет (точнее к всем протоколам, кроме Modbus-TCP), последовательным и USB. Они все есть в /dev, обращение к ним стандартное для Линукса.

Последовательные порты нужно предварительно отключить в лоджике (чтобы лоджик их не занимал).


__________________
Добро всегда побеждает добро. Кто добрый - тот и добро.
Arsie вне форума   Ответить с цитированием
Старый 30.05.2017, 13:54   #12
Airborne
Новичок
 
Регистрация: Aug 2015
Сообщения: 29
По умолчанию Ответ: Програмирование на С

Цитата:
Сообщение от Arsie Посмотреть сообщение
Выход на GPIO мы не даём, т.к. можно устроить крах контроллеру при невыполнении условий переключения. Доступ у вас есть только к портам эзернет (точнее к всем протоколам, кроме Modbus-TCP), последовательным и USB. Они все есть в /dev, обращение к ним стандартное для Линукса.

Последовательные порты нужно предварительно отключить в лоджике (чтобы лоджик их не занимал).
Было бы неплохо написать библиотеку для работы с портами, чтобы все правильно переключалось.

Ps без Fbd не обойтись(
Airborne вне форума   Ответить с цитированием
Старый 30.05.2017, 14:01   #13
Gromov
Сотрудник Segnetics
 
Аватара для Gromov
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 1 295
По умолчанию Ответ: Програмирование на С

А вы озвучьте вашу задачу. Быть может, на fbd сделать не только легче, но и быстрее...


__________________
Во всём виноваты менеджеры. (С) Эрнесто Че Гевара
Gromov вне форума   Ответить с цитированием
Старый 30.05.2017, 14:07   #14
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 9 143
По умолчанию Ответ: Програмирование на С

Цитата:
Сообщение от Airborne Посмотреть сообщение
Было бы неплохо написать библиотеку для работы с портами, чтобы все правильно переключалось.
Ещё перед созданием SMH2G(i) мы приняли решения, что поддержки программирования на Си без использования лоджика не будет.

Причины:

1) Разруливание, выполняемое лоджиком

2) Зависимость от квалификации программиста

3) Трудоёмкость техподдержки

Поэтому на Си можно писать только подпрограммки. Примеры и механизм взаимодействия с лоджиком есть и он описан.


__________________
Добро всегда побеждает добро. Кто добрый - тот и добро.
Arsie вне форума   Ответить с цитированием
Старый 30.05.2017, 14:13   #15
Airborne
Новичок
 
Регистрация: Aug 2015
Сообщения: 29
По умолчанию Ответ: Програмирование на С

Цитата:
Сообщение от Gromov Посмотреть сообщение
А вы озвучьте вашу задачу. Быть может, на fbd сделать не только легче, но и быстрее...
Да в том то и дело, что несколько строк кода на си у меня выливаются в полный экран блоков на fbd и день потеряного времени. Не умею я на fbd, а просить по каждому поводу неудобно.
Airborne вне форума   Ответить с цитированием
Старый 30.05.2017, 15:11   #16
Gromov
Сотрудник Segnetics
 
Аватара для Gromov
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 1 295
По умолчанию Ответ: Програмирование на С

У меня вначале тоже так было. Несколько живых проектов и критика исходников позволили преодолеть этот момент.

Не вижу никакой задачи, которая бы буквально "2 строчки си в день fbd" выливалась.

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

Считаю, что в контексте 2Gi есть смысл использовать сишный код только в нестандартных случаях. Например - подключение к контроллеру прибора не modbus, работа с внешними флешками, работа с собственным веб-сервером и т.д.. Задачи же общепромышленного назначения решаются в фбд.


__________________
Во всём виноваты менеджеры. (С) Эрнесто Че Гевара
Gromov вне форума   Ответить с цитированием
Старый 01.06.2017, 07:46   #17
СВМ
Senior Member
 
Регистрация: Jan 2012
Адрес: Саратов
Сообщения: 137
По умолчанию Ответ: Програмирование на С

Цитата:
Сообщение от Airborne Посмотреть сообщение
Не умею я на fbd, а просить по каждому поводу неудобно.
Человек, изучивший Си и не утративший способность к обучению, вполне способен освоить FBD. Приведите программу на Си, которую нужно реализовать, и наверняка кто-то подскажет, на то он и форум.
СВМ вне форума   Ответить с цитированием
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Програмирование 2010 через rs485 zev_ Связь с внешним миром 1 27.11.2013 16:33
Программирование на языке С++? zem21 Вопросы о SMH2010 21 04.04.2013 11:38


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


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