Например TDA7294

Форум РадиоКот :: Просмотр темы - Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
Форум РадиоКот
https://radiokot.ru/forum/

Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
https://radiokot.ru/forum/viewtopic.php?f=59&t=128469
Страница 14 из 18

Автор:  Мурик [ Пн июн 01, 2020 01:41:28 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

uni писал(а):
В 8.9 SP2 их уже нет
Есть. :)

uni писал(а):
О, я нужную модельку нашёл
F401 есть без нажатия на эту кнопку. :)
Вы пробовали добавить эти модельки в симуляцию? Ждет сюрприз. :))) :dont_know:

Автор:  arif01230 [ Пн июн 01, 2020 07:17:37 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Dear uni

Please repost File IAR ARM 6.5 PLC_iararm65.7z [420.65 KiB] ; Link not working..

Posted after 9 minutes 27 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
Dear All

It will very helpful for educational purpose to all, if the project based on iar 6.3 or keil c and or Blue Pill stm32f103C8T6; as Blue Pill stm32f103C8T6 is commonly available.


Please post your project based on iar 6.3 or keil c and or Blue Pill stm32f103C8T6;

Please ........; Please ...............; Please ..................

Posted after 2 minutes 53 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
uni, IAR ARM 6.5 PLC_iararm65.7z [420.65 KiB]
Download error????

Posted after 4 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
uni, IAR ARM 6.5 PLC_iararm65.7z [420.65 KiB]
Download error????

Posted after 6 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
uni, IAR ARM 6.5 PLC_iararm65.7z [420.65 KiB]
Download error????

Posted after 6 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
uni, IAR ARM 6.5 PLC_iararm65.7z [420.65 KiB]
Download error????

Автор:  uni [ Пн июн 01, 2020 08:03:42 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

arif01230, this is not the latest version of sources. Please wait until I convert them from this message.

imsushka, повторите вложения из указанного сообщения, т.к. похоже часть форумных вложений испарилась после местного сбоя.

Автор:  imsushka [ Пн июн 01, 2020 18:30:11 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вот

Вложения:
PLC.part2.rar [489.48 KiB]
Скачиваний: 788
PLC.part1.rar [750 KiB]
Скачиваний: 826

Автор:  uni [ Вт июн 02, 2020 07:31:17 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вот вариант проекта для IAR ARM 6.5. Для остальных версий IAR доработайте самостоятельно, это не сложно.

Проект собирается, но работоспособность ещё не проверял. В файле src\PLC_LAD.c пока остались китайские иероглифы.

Если подскажите схему подключения периферии, то я сделаю проект для Proteus и попробую его связать с GX Works 2 через программный нуль-модем. Пока из файлов проекта не совсем ясно что куда подключено.

Вложения:
Комментарий к файлу: IAR ARM 6.5
plc_iar65_20200602.7z [834.87 KiB]
Скачиваний: 746

Автор:  tonyk [ Вт июн 02, 2020 07:55:51 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

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

Автор:  uni [ Вт июн 02, 2020 08:01:03 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Кто-то там из китайцев сказал, что путь в один парсек начинается с 1 а.е.

Уже вижу как оптимизировать код местами. Таблицы для расчёта CRC16 у Modbus лишние:

1. Ещё один метод расчёта CRC16
2. Примеры алгоритмов расчёта CRC16 (полином 0xA001): https://godbolt.org/z/9txEB2

Автор:  tonyk [ Вт июн 02, 2020 20:01:01 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Цитата:
Уже вижу как оптимизировать код местами

Под какой процессор? 8, 16, 32 разрядный? Какой архитектуры?

Цитата:
Таблицы для расчёта CRC16 у Modbus лишние

А мужики-то не знают! И зачем вдруг через них стали делать, а? Не задумывался?

Прежде чем делать такие заявления, нужно обмозговать задачау со всех сторон. А если код будет собираться не под СТМ32? Вот понадобится 3 интерфейса с Модбас и как быть? В какой-то умной книжке была фраза, что причина многих проблем в преждевременной оптимизации. Вы сначала соберите код со строгой проверкой, устраните ошибки, которые видят компилятор и статический анализатор, потом уже пытайтесь его тестировать. Вот когда хотя бы простые тестовые программы для ПЛК заработают, тогда уже постройте профиль программы, изучите узкие места и только тогда можете подумать об оптимизации.

К выложенному проекту следует относиться как- прости меня, imsushka, за аллегорию!- к большой куче навоза посреди огорода. Выглядит стрёмно, пахнет нифига не розами. Вот когда эту кучу разровняешь по всему огороду, перепашешь, глядишь, на следующий год и урожай хороший соберёшь, и розы будут большими и вкусно пахнуть. И пинать imsushka не следует, он и так собрал это всё и привёз к нам в огород, проделав огромную работу.

Автор:  uni [ Вт июн 02, 2020 21:29:48 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Что за поток глупости? :) Я ему примеры привёл, даже убогой avr8 архитектуры с измерениями вплоть до такта и микросекунды, а он мне тут как гуманитарий заливает. Я воспринимаю только такты и микросекунды как критику, так что потрудитесь обосновывать таким образом.

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

Кому лень, то я поясняю по поводу crc16. Существует как минимум 4 разных алгоритма расчёта. В общем и целом, когда важны даже 512 байт памяти, то не сильно теряя в скорости можно использовать алгоритм на сдвигах или алгоритм, называемый у меня как simple. Для целевого мк STM32F103C8T6 они важны. Поэтому я уже выкинул эти таблицы из кода расчёта crc16, а modbus этот вообще нужно полностью переписать. Ну кто так пишет в век структур? Хотя из всего этого кода мне лично интересна только IL машина и больше ничего, т.е. сам протокол и пример реализации кода интерпретатора на его основе.

Какой ещё статический анализатор? Он у меня в голове. Я имел дело с куда более сложными интерпретаторами, даже написал свой дизассемблер для avr8 архитектуры.

Как вот окружение разработчика и тестировщика подготовлю, то отпишусь о результате первого тестирования кода. Надеюсь, что ST код удастся хотя бы частично залить, дальше я бы уж доработал.
Мне, кстати, нужно как минимум 4 modbus rtu slave канала: HMI, Scada, графический анализатор и отладка. Я привык так работать. Анализатор - это iba PDA.

Я никого не пинаю, а немного критикую. Вот покритикую и выложу своё видение. Будете меня потом критиковать :)

Автор:  uni [ Ср июн 03, 2020 09:09:13 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Загрузил код в BluePill, в SWD отладчике зависаю при включении тактирования периферии на строке RCC_APB1PeriphClockCmd(...). Видимо быстро войти в тему не получится. Попробую инициализацию сформировать автоматически CubeMX'ом и посмотреть в чём разница.
А с Proteus'ом вышел облом, модельки там на самом деле нет или я не нашёл. Есть УГО и посадочное место, а вот именно модели, куда прошивку вставляешь, нет.

Автор:  imsushka [ Ср июн 03, 2020 09:53:38 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

вот схема подключения
больше усартов нету

все компилицца, переферия вся работает, воркс корректно работает
с монитором проблемы иногда, не туда пишет/читает

Добавлено after 9 minutes 32 seconds:
[quote]
К выложенному проекту следует относиться как- прости меня, imsushka, за аллегорию!- к большой куче навоза посреди огорода. Выглядит стрёмно, пахнет нифига не розами.


а я тут причем ? это не моя куча, это куча китайская.
тысячи китайцев старались, накладывали, а вы ...

ой там можно на ноль поделить, ай там можно сделать чтоб црц считалась в 120 раз быстрее чем данные принимаюцца, а счас всего в 100 раз быстрее, ее и2с у стм глючная, давайте софотовую забабахаем.......
и тд и тп

еще 250 раз повторяю - НАРОД, ПРОВЕРТЕ БАЗОВЫЙ ФУНКЦИОНАЛ (первые 30 команд по мануалу)
это самое главное, все остальное прикладное

STL работает ????? хз, MC работает ? хрен

Вложения:
a4fac5b07104272e52ce9cfaf90ea6a7.gif [217.51 KiB]
Скачиваний: 522

Автор:  uni [ Ср июн 03, 2020 15:30:02 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Виновен, прошивка "крутится". Проблема, видимо, была в конвертировании проекта на плюсы. Жаль, что сходу не получилось. Нужно аккуратнее сишный код "оборачивать". Буду тестить теперь.

Автор:  Мурик [ Ср июн 03, 2020 16:35:10 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Смыл было конвертировать в плюсы? На сях тоже нормально работает.

Автор:  uni [ Ср июн 03, 2020 17:17:07 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Да, правильно написанный код везде будет работать. Просто c++ предоставляет дополнительные возможности по компактному оформлению кода. Больше возможностей, строже проверки типов. Мне не нравится стиль, когда в коде глобальные переменные гуляют по всем исходникам. Люди, которые пишут на си этим страдают. Либо часто видишь наименования функций типа lcd_init(), lcd_putchar(), lcd_println() и прочее, что лучше выглядит на с++. Код получается модульней. А вообще, современные среды разработки больше заточены под плюсы. Я ещё eclipse не подключил, т.к. структура проекта мне не нравится.

Подозреваю, что проблема может быть в коде инициализации и присутствующий ассемблерный код не совсем подходит для c++ проекта, но это чисто гипотеза. Потом разберусь.

Судя, кстати, по размеру кода, этот проект вроде можно даже на ATmega1284 запустить, там как раз 16К ОЗУ на борту. Может влезть.

Автор:  Мурик [ Ср июн 03, 2020 21:51:56 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

uni писал(а):
Мне не нравится стиль, когда в коде глобальные переменные гуляют по всем исходникам.
В C++ нет extern? Те переменные что не должны "светится" во все исходники, объявляем со static. Тоже относится к функциям.

uni писал(а):
Судя, кстати, по размеру кода, этот проект вроде можно даже на ATmega1284 запустить, там как раз 16К ОЗУ на борту. Может влезть.
Имеет смыл когда имеется готовое устройство на котором нужно запустить код, иначе зачем переносить с более мощного МК на менее мощный?

Вообще, этот проект лучше запустить на каком-то F4. На Али и не только продают платы с STM32F401CCU6 (Cortex-M4, 80 МГц, 256 КБ flash, 64 КБ ОЗУ), стоимостью не на много выше чем у BluePill. Это хороший кандидат для этого проекта. А если понадобится больше выводов, есть платы с STM32F407VGT6 и STM32F407ZGT6.

Автор:  uni [ Чт июн 04, 2020 07:25:57 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

У меня большой опыт встраивания и сопровождения очень разнообразного чужого Си кода. И я могу с уверенностью утверждать, что использование C++ приводит ум в порядок. В качестве хобби я подключаю свободные математические библиотеки к одной математической программе. Повидал всякого. Честно говоря, я даже не смогу привести примера, где бы Си-кодер вообще напрягался по поводу оформления кода или придерживался какого-то одного стиля кодирования. Обычно код выглядит как взрыв на макаронной фабрике. В связи с этим отдельные модули объединены неявными взаимными связями, о которых можно догадаться только на этапе связывания, когда тебе прилетает куча ошибок компоновки.

В качестве примера, в этих исходниках есть идентификатор HEX, который используется как прототип функции (ladder.c) и как массив (PLC_COM.c). Не все компиляторы такое проглатывают.

Цитата:
Имеет смыл когда имеется готовое устройство на котором нужно запустить код, иначе зачем переносить с более мощного МК на менее мощный?

BluePill мне пришлось заказывать по сети и ждать, а макетка на базе ATmega1284 есть в магазине chipdip в наличии сейчас. До нас технологии ещё идут. Если народу просто не нужен ARM, а хочется лампового AVR, то почему нет?

Автор:  imsushka [ Чт июн 04, 2020 13:41:06 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

урррррраааааа, делаем на старом добром ламповом 8031 !!!!!!!!!

если человек привык писать быблокод, то хоть на аде он все равно напишет быдлокод

Автор:  Мурик [ Чт июн 04, 2020 13:50:32 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

uni писал(а):
BluePill мне пришлось заказывать по сети и ждать, а макетка на базе ATmega1284 есть в магазине chipdip в наличии сейчас.
Перенос кода с STM на AVR требует времени. А потом еще этап отладки... Проще дождаться прихода STM.
Странно что BluePill не оказалось в наличии. Это как ардуины - запас должен быть.
Я давно перешел с AVR с STM32 и считаю что верно поступил.

uni писал(а):
Если народу просто не нужен ARM, а хочется лампового AVR, то почему нет?
Ну да, некоторые предпочитают ламповые телевизоры вместо современных, плазменных или ЖКИ...

Автор:  murdemon [ Вт июл 14, 2020 08:28:29 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

stm32f103C8T6 FX1N ПО для Arduino (надо загрузчик через UART1 для Arduino загрузить) потом все через виртуальный COM, LAD работает , среда GXWorks2

Вложения:
ArdSTM32.rar [192.58 KiB]
Скачиваний: 693

Автор:  jalvesx [ Ср июл 15, 2020 21:25:43 ]
Заголовок сообщения:  Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Кому-нибудь удалось скомпилировать? В заголовочном файле flash_stm32.h есть ошибка. __IO не был объявлен в этой области.

Страница 14 из 18 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/