Страница 20 из 41 ПерваяПервая ... 10181920212230 ... ПоследняяПоследняя
Показано с 191 по 200 из 412

Тема: Codesys v3 + Raspberry Pi

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,513

    По умолчанию

    Вопрос а куда тогда писать данные, если все крутится в озу и вырубается питание ? например у меня в scada 30 секунд и запись данных.

  2. #2

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Вопрос а куда тогда писать данные, если все крутится в озу и вырубается питание ? например у меня в scada 30 секунд и запись данных.
    Для сброса файлов ram-диска на флеш в tinycore есть специальная команда, вернее shell-скрипт. Если вызывать его каждые 30 сек, то будет сохраняться. Но крутить скаду под tinycore наверное будет неправильно, все преимущества потеряются при частой записи. Это уровень ПЛК, а архивы надо держать в другом месте (не на sd-карте).

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,513

    По умолчанию

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

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,513

    По умолчанию

    С КДС не пробовал, а так, у Малины только USB, можно записывать видимо так же как на флешку..

  5. #5
    Пользователь Аватар для uni
    Регистрация
    01.03.2016
    Адрес
    Екатеринбург
    Сообщений
    17

    По умолчанию

    CoDeSys 3.5.10.x зависает (ожидает соединения и констатирует потерю связи) при попытке повторного логина (с загрузкой программы) для проекта, который работает с event'ами. Теряется соединение с runtime'ом. Кто-нибудь что-нибудь про это знает/слышал? Проект.

    Спросил на форуме CoDeSys.
    Последний раз редактировалось uni; 16.03.2017 в 10:11. Причина: ссылка на форум

  6. #6
    Пользователь Аватар для uni
    Регистрация
    01.03.2016
    Адрес
    Екатеринбург
    Сообщений
    17

    По умолчанию

    Да не, с версиями всё норм. Это глюк runtime'а как по мне. Вот видео демонстрация проблемы. CoDeSys 3.5.10.0 (10, 20). Остальное свежее с сайта RaspberryPi. runtime в устройство загружает сам CoDeSys (уж какой загрузит, ему виднее).


  7. #7
    Пользователь Аватар для uni
    Регистрация
    01.03.2016
    Адрес
    Екатеринбург
    Сообщений
    17

    По умолчанию

    Для тех потомков, кто будет пользовать этот самый codesys и столкнётся с глюком потери соединения при работе с event'ами, знайте, что CDRead() с принудительно установленным флагом O_NONBLOCK спасёт отца русской демократии. Такого флага конечно нет, но вы его можете объявить сами (O_NONBLOCK = 4000 - в десятичной (!) системе). Флаг нужно пользовать как в Си-программах.

    Ну и если вы хотите большего, к примеру, часами (/dev/rtc) поуправлять (ioctl) или чем другим, то запросы можно оформить так (я не нашёл эквиваленты макросов _IOR и _IOW):

    Код:
    var constant
    	RTC_RD_TIME: udint := 16#09;
    	RTC_SET_TIME: udint := 16#0a;
    	group: dword := 16#70;
    	IOC_OUT: dword := 16#80000000;
    	IOC_IN: dword := 16#40000000;	
    	IOCPARM_MASK: dword := 16#1fff;
    end_var
    
    method private ReadRequest : dword
    var_input
    	num: udint;
    	len: udint;
    end_var
    
    ReadRequest := IOC_OUT or ( shl( len and IOCPARM_MASK, 16 ) or ( shl( group, 8 ) or num ) );
    
    method private WriteRequest : dword
    var_input
    	num: udint;
    	len: udint;
    end_var
    
    WriteRequest := IOC_IN or ( shl( len and IOCPARM_MASK, 16 ) or ( shl( group, 8 ) or num ) );
    
    // ...
    
    hRtc := CDOpen( '/dev/rtc', CmpCharDevice.ACCESS_MODE.O_RDONLY, adr( Result ) );
    
    if hRtc <> RTS_INVALID_HANDLE then
    	
    	Request := dword_to_dint( ReadRequest( RTC_RD_TIME, sizeof( TRtcTime ) ) );
    
    	CDIoctl( hRtc, Request, dword_to_dint( adr( Read ) ), adr( Result ) );
    	
    	CDClose( hRtc, adr( Result ) );
    
    end_if
    
    // ...
    
    hRtc := CDOpen( '/dev/rtc', CmpCharDevice.ACCESS_MODE.O_WRONLY, adr( Result ) );
    
    if hRtc <> RTS_INVALID_HANDLE then
    	
    	Request := dword_to_dint( WriteRequest( RTC_SET_TIME, sizeof( TRtcTime ) ) );
    
    	CDIoctl( hRtc, Request, dword_to_dint( adr( rtctime ) ), adr( Result ) );
    	
    	CDClose( hRtc, adr( Result ) );
    
    end_if
    П.С. Оказывается CmpCharDevice.library после чистой установки CoDeSys почему-то недоступна. Видимо эта библиотека появляется при добавлении пакета с RaspberryPi, но на просторах сети её найти и скачать можно. Также можно добавить в проект библиотеки недостающий флаг и дополнительную функциональность по сборке запросов. Может быть где-то кто-то до меня это уже сделал, кто знает...
    Последний раз редактировалось uni; 25.03.2017 в 12:16. Причина: доп. информация

  8. #8
    Пользователь Аватар для uni
    Регистрация
    01.03.2016
    Адрес
    Екатеринбург
    Сообщений
    17

    По умолчанию

    Используя shared memory можно передавать данные из runtime codesys во внешние программы. Таким образом можно делать визуализацию на Mono, используя преимущества c#. Отлаживать оба проекта можно в Windows системе, правда с небольшим отличием в доступе к разделяемому объекту.

    Код для codesys взят из примера SharedMemory и обрезан (см. в store). На raspberri pi 3 нужно лишь открыть и прочитать файл /dev/shm/{имя_объекта_в_codesys}. На картинке ниже codesys формирует одно число типа lreal и записывает его в разделяемую память. Проект на c# открывает файл, читает это число (текущее измерение) и отображает его на графике (компонент NPlot).

    Писать визуализацию в Codesys то ещё занятие, не для слабонервных. Всё равно она нестандартная (велосипедная). Ни чем не хуже делать её на mono, тем более, что возможностей здесь на порядок больше.

    2017-10-21_23-04-29.png

  9. #9

    По умолчанию

    Мужики, не в дружбу а в службу, если есть здесь кто покупал CODESYS Control for Raspberry Pi SL - интересует содержимое папки /var/opt/codesys/backup. Скиньте в личку в любом виде, 'на_коньяк' строго гарантирую.

  10. #10

    По умолчанию

    Добрый день. Обновлю тему.

    в логе codesyscontrol.log такие сообщения

    1547254171, 0x00000002, 4, 16, 40, Retain restore from file failed: [<app>Application</app>]
    1547254171, 0x00000002, 2, 1288, 49, Retain data are initialized now of [<app>Application</app>]
    1547254177, 0x00000002, 1, 0, 2, Application [<app>Application</app>] loaded via [Bootproject]
    поля такие
    ;<entries>
    ;Timestamp, CmpId, ClassId, ErrorId, InfoId, InfoText
    ;</entries>

    Можно ли отловить это событие (event)? куда смотреть? CmpApp EventIDs смотрел, что то не нашел.... И что такое CmpId, ClassId, ErrorId, InfoId?

Страница 20 из 41 ПерваяПервая ... 10181920212230 ... ПоследняяПоследняя

Похожие темы

  1. CoDeSys V3 и ноутбук
    от smk1635 в разделе СПК2xx (архив)
    Ответов: 14
    Последнее сообщение: 23.09.2020, 08:11
  2. codesys v3
    от nevii в разделе ПЛК3xx (архив)
    Ответов: 3
    Последнее сообщение: 18.09.2014, 11:23
  3. ПЛК110 и CoDeSys v3
    от DIG в разделе ПЛК1хх
    Ответов: 32
    Последнее сообщение: 09.11.2011, 17:02
  4. CodeSys V3
    от nnesterov в разделе ПЛК3xx (архив)
    Ответов: 13
    Последнее сообщение: 05.04.2010, 14:12
  5. CoDeSys v3
    от Alor в разделе Трёп (Курилка)
    Ответов: 1
    Последнее сообщение: 02.12.2008, 10:48

Ваши права

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