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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб мар 21, 2020 07:26:05

китайсы делают на ф203/ф205/ф405

в 103 запихнуть не проблема, сам код 48 кил , но можно часть команд (доубле, флоат) выкинуть если не нужны. тогда код около 30 кил получается
ну и по регистрам тоже в 103 ограничение (20 кил памяти всего)

я застопорился на
void MOV_TO_K_H(u8 i, u32 data, u32 addr)
signed int MOV_K(void)

и далее get_value и put_value

чото там так мудрено, не знаю как упростить

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб мар 21, 2020 22:04:47

Спасибо за информацию, жаль что пока не получилось. А проекте менял камень или копировал файлы в новый проект?.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Вс мар 22, 2020 07:22:58

я уж и не помню, мне его под иар пересобрали
под 103 я его сразу и готовил, оптимизировал шо б поместилось

проект рабочий, просто то что у меня может уже и не работает как надо, я его сильно перепахал
что б еще упростить/уменьшить код надо было переделать 6 функций get_value/put_value, но что то там не то
может и работает, но я не понимаю как

в 103 по дш 64к памяти, народ говорит что есть еще 64
я пихал так что б все (и код и пользовательская прога) в 64 помещались
в принципе впихивается, 8000 шагов проги поместятся и 2000/4000 регистров данных
Вложения
PLC.rar
(801.87 KiB) Скачиваний: 462

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 07:46:34

STM32F103V (Z)

Там основное требование- память не меньше 64К.

Потискал немного этот проект.Ну китайцы... Судя по исходникам, вроде как FX2N/FX1N/FX1S. Но к GX Works в режиме автоопределения цепляется как FX3U.

Посмотрел исходники. Это феерично. Проект приколочен к адресам Ф103, есть конструкции вида __at(...), хотя в других проектах, виденных мной, их ещё больше. И хотя широко используется SPL, много дефайнов с адресами периферии. Такое ощущение, что писали 2 человека.

Моя цель- отделить мух от котлет, то есть разделить аппаратно зависимую и независимую части. Это позволит портировать его на другие платформы. Руки пока не дошли, так, раз-два в неделю по часику-два изучаю.

Переводить на Ф103С8 считаю бесполезной тратой времени. Во-первых, с таким объёмом ОЗУ вряд ли получится реализовать поддержку плавающей точки, SFC и, например, того же Модбас. Во-вторых, стоимость Ф103С6 и, например, Ф401RE или 411 отличаются не сильно, а вот возможности ощутимо. Кстати, имеющийся проект поддерживает Modbus и CAN. Глубоко не рыл, но 6 таймеров, вероятно, для ШИМ и/или энкодеров(?). Ну а если ваять чё-нить удобное и функциональное для жизни, то понадобятся 1-Wire, Ethernet, USB. А если добавить возможность работы с модулями удалённого ввода-вывода, то несколько RS-485/RS-232 и тогда, по-моему, становится очевидной полная бесперспективность Ф103С8.

Делать кастрата 4DI/4DO- безсмысленно. Кому он нужен? Только автору. ИМХО, делать нужно нормальный контроллер, чтобы он заинтересовал и его применяли много людей. Тогда будет возможно всесторонне протестировать получившийся ПЛК.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 09:41:35

канешно 2 или более писак, я ж его не с нуля писакал :). я его перепахивал под себя и по чуть чуть оптимизировал.
@ я оставил 1 ROM_ADDR и это временно.
просто я не знаю как указать линковщику на конец проги.
остальное вроде не привязанно к физическим адресам

и флоат и доубле помещаются все, но вопрос - а оно нужно всем и всегда ?

еще раз повторяю - в синюю пилюлю все помещается и работает с небольшими ограничениями по количеству регистров 2000 штук и длинне программы в 8000 шагов.
и модбас слейв есть, да и на мастер места хватает, ШИМ там вроде тоже ничего сложного и объемного

я не проверял адекватную (1 в 1 с мицубисей) работу, отсутсвуют часть команд (в том числе FOR/NEXT)

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

вот не давно прикупил себе пару китайских fx1 для сравнения работоспособности

и вааще подумывал посадить I/O на SPI шо б можно было наращивать порты просто добавляя 595

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 10:18:09

я ж его не с нуля писакал

Уважаемый imsushka! Я говорил об имеющемся у меня китайском проекте, а не твоём.
еще раз повторяю - в синюю пилюлю все помещается и работает с небольшими ограничениями

"Всё"- это что? То есть реализован полный набор команд, поддерживающий LD, SFC и ST? Меня смущает размер исходников, которые выкладывались в этой теме. Сравниваю с проектом, который я изучаю. Он содержит около 36000 строк кода без учёта библиотек.
по количеству регистров 2000 штук и длине программы в 8000 шагов.

Маловато. Есть возможность увеличить?
отсутсвуют часть команд (в том числе FOR/NEXT)

Вот, заметил только сейчас. Значит, далеко не полная поддержка. Плохо.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 10:48:58

LD ST SFC - это оболочка на компе
в мк грузится скомпилированная хрень, она наверное соответсвует LD
по мицубисевской доке если смотреть , то fx1 и fx2 реализованны на 90%
fx3 - не реализован (новые команды которых нет в 1 и 2 fxсе)

под все я подрузумеваю вот эти 90%
у меня есть 3 или 4 разных проекта, тот что я перепахиваю и выложил единственный рабочий

увеличить память программы не проблема - использовать дополнительные 64к недокументированные
память регистров - нет, только если поставить внешнюю память


кстати FOR/NEXT нет ни в одном из проектов
в моем есть какие то обрезки, как будто народ по удалял куски кода

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 11:07:56

LD ST SFC - это оболочка на компе

Не совсем. Поддержка SFC требует реализации ряда команд.
А свои проги на чём ваяешь, только на LD?

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 12:11:31

LD ST SFC - это оболочка на компе

Не совсем. Поддержка SFC требует реализации ряда команд.
А свои проги на чём ваяешь, только на LD?


да, так привычней

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 12:20:58

То есть SFC и ST не тестировал?

Добавлено after 5 minutes 9 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
Стал смотреть и вот:
в 103 запихнуть не проблема, сам код 48 кил

Хм, тот, который я изучаю, занимает 120К. В нём, правда, много явных оптимизация по скорости в ущерб размеру, но 48 и 120 заставляют задуматься об объёме реализации функционала FX.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 12:58:35

37 100 bytes of readonly code memory
2 632 bytes of readonly data memory
6 116 bytes of readwrite data memory

у меня что то отключенно, но ладдере вроде все включенно
я давно уже не подходил к этому проекту, не помню что отключал

но озушку я почистил и там свободно 14 кил = 7000 регистров


можно проект увидеть ?

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн мар 23, 2020 13:08:05

До дома доберусь- вышлю.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пн апр 13, 2020 18:53:15

<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">imsushka</font></font>,
hi

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср апр 15, 2020 08:27:22

Добрый день.
Приобрел плату на основе STM32F103ZE, залил выложенный здесь проект FX2N_MODBUS_RTC_AD_DA_V3.8, подключил к GX Works2 - связи нет.
Вечером проверил дома - Test conect показывает соединение, считывает название контроллера, но дальше программа GX не связывается - не считывает и не пишет программу.
Обнаружил что на плате стоит кварц - 8 мегагерц, поменял в проекте с 12 на 8 - результат тот же. Запаяю на плату 12 посмотрю, что получится.
Вопрос - кто либо запускал проект FX2N_MODBUS_RTC_AD_DA_V3.8 он рабочий?.
Спасибо imsushka за выложенный проект Plc.rar. Может кто-то переделывал его под Keil? , IAR не стоит и некогда его не использовал.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср апр 15, 2020 13:40:10

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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср апр 15, 2020 17:42:19

Запаял кварц на 12 - не работает совсем.
Проект Plc.rar скомпилирован для STM32F103C8T6 ?

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср апр 15, 2020 17:54:48

alexvp, дай вспомнить , давно дело было.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб май 02, 2020 09:42:29

иар 8,32
9600 усарт2 для связи с девелопером
115200 усарт3 - логи работы
19200 усарт1 - модбус (не проверял, лень, но должен рабртать)

макс7219 - 4 штуки, эмуляция 256 портов вывода (~500 мксек обновление)
на вход не пробовал, нету 165 микрух готовых

лсд выводит всякую фигню, для себя

а работает или нет это вы мне говорите :tea:

a4fac5b07104272e52ce9cfaf90ea6a7.gif
(217.51 KiB) Скачиваний: 439
Вложения
PLC.part02.rar
(730.88 KiB) Скачиваний: 439
PLC.part01.rar
(750 KiB) Скачиваний: 553

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб май 02, 2020 11:19:08

Этот код- НЕ_пригоден для использования. Хотя компилируется. Смотрю математику и обалдеваю от того бреда, что вижу. _ВСЯ_ арифметика должна быть переписана. Увы и ах. Не зря китайцы выложили его в свободный доступ.

Добавлено after 16 minutes 41 second:
Добрый день.
Вопрос - кто либо запускал проект FX2N_MODBUS_RTC_AD_DA_V3.8 он рабочий?

Что значит "рабочий"? Да, он компилируется. Да, коннектится. Но использовать его не получится.

Код:
static void DIV(void)    //іэ·Ё

   signed short int temp1,temp2,temp3;
   if((PLC_ACC_BIT&0X01)==0X01)
   {
      PLC_Err=PLC_Addr;
      temp1=cos_value();
      temp2=cos_value();
      temp3=addr_value();
      PLC_16BIT[temp3]=temp1/temp2;
      PLC_16BIT[temp3+1]=temp1%temp2;
   }
   else PLC_Addr+=6;              //Мш№э6ІЅіМРт
}


И такое везде. Я уже не говорю про выставление маркеров ошибки и переполнения.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб май 02, 2020 12:04:31

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

использовать можно, просто контроль на конечном пользователе

- cmp k0 d0 m0
ldi m1 - div d1 d0 d2
Ответить