Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн июн 01, 2020 01:41:28

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн июн 01, 2020 07:17:37

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????

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн июн 01, 2020 08:03:42

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн июн 01, 2020 18:30:11

Вот
Вложения
PLC.part2.rar
(489.48 KiB) Скачиваний: 779
PLC.part1.rar
(750 KiB) Скачиваний: 819

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вт июн 02, 2020 07:31:17

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

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

Если подскажите схему подключения периферии, то я сделаю проект для Proteus и попробую его связать с GX Works 2 через программный нуль-модем. Пока из файлов проекта не совсем ясно что куда подключено.
Вложения
plc_iar65_20200602.7z
IAR ARM 6.5
(834.87 KiB) Скачиваний: 739

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вт июн 02, 2020 07:55:51

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вт июн 02, 2020 08:01:03

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

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вт июн 02, 2020 20:01:01

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

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

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

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

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вт июн 02, 2020 21:29:48

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

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

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

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

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср июн 03, 2020 09:09:13

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср июн 03, 2020 09:53:38

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

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

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


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

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

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

STL работает ????? хз, MC работает ? хрен
Вложения
a4fac5b07104272e52ce9cfaf90ea6a7.gif
(217.51 KiB) Скачиваний: 517

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср июн 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

Ср июн 03, 2020 17:17:07

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

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср июн 03, 2020 21:51:56

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

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Чт июн 04, 2020 07:25:57

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

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

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Чт июн 04, 2020 13:41:06

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Чт июн 04, 2020 13:50:32

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

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вт июл 14, 2020 08:28:29

stm32f103C8T6 FX1N ПО для Arduino (надо загрузчик через UART1 для Arduino загрузить) потом все через виртуальный COM, LAD работает , среда GXWorks2
Вложения
ArdSTM32.rar
(192.58 KiB) Скачиваний: 685

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср июл 15, 2020 21:25:43

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