Кто любит RISC в жизни, заходим, не стесняемся.
Сб мар 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
чото там так мудрено, не знаю как упростить
Сб мар 21, 2020 22:04:47
Спасибо за информацию, жаль что пока не получилось. А проекте менял камень или копировал файлы в новый проект?.
Вс мар 22, 2020 07:22:58
я уж и не помню, мне его под иар пересобрали
под 103 я его сразу и готовил, оптимизировал шо б поместилось
проект рабочий, просто то что у меня может уже и не работает как надо, я его сильно перепахал
что б еще упростить/уменьшить код надо было переделать 6 функций get_value/put_value, но что то там не то
может и работает, но я не понимаю как
в 103 по дш 64к памяти, народ говорит что есть еще 64
я пихал так что б все (и код и пользовательская прога) в 64 помещались
в принципе впихивается, 8000 шагов проги поместятся и 2000/4000 регистров данных
- Вложения
-
- PLC.rar
- (801.87 KiB) Скачиваний: 462
Пн мар 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- безсмысленно. Кому он нужен? Только автору. ИМХО, делать нужно нормальный контроллер, чтобы он заинтересовал и его применяли много людей. Тогда будет возможно всесторонне протестировать получившийся ПЛК.
Пн мар 23, 2020 09:41:35
канешно 2 или более писак, я ж его не с нуля писакал
. я его перепахивал под себя и по чуть чуть оптимизировал.
@ я оставил 1 ROM_ADDR и это временно.
просто я не знаю как указать линковщику на конец проги.
остальное вроде не привязанно к физическим адресам
и флоат и доубле помещаются все, но вопрос - а оно нужно всем и всегда ?
еще раз повторяю - в синюю пилюлю все помещается и работает с небольшими ограничениями по количеству регистров 2000 штук и длинне программы в 8000 шагов.
и модбас слейв есть, да и на мастер места хватает, ШИМ там вроде тоже ничего сложного и объемного
я не проверял адекватную (1 в 1 с мицубисей) работу, отсутсвуют часть команд (в том числе FOR/NEXT)
и одному все таки сложно писакать, мысли не всегда приходят, да и дедлайна нету
вот не давно прикупил себе пару китайских fx1 для сравнения работоспособности
и вааще подумывал посадить I/O на SPI шо б можно было наращивать порты просто добавляя 595
Пн мар 23, 2020 10:18:09
я ж его не с нуля писакал
Уважаемый imsushka! Я говорил об имеющемся у меня китайском проекте, а не твоём.
еще раз повторяю - в синюю пилюлю все помещается и работает с небольшими ограничениями
"Всё"- это что? То есть реализован полный набор команд, поддерживающий LD, SFC и ST? Меня смущает размер исходников, которые выкладывались в этой теме. Сравниваю с проектом, который я изучаю. Он содержит около 36000 строк кода без учёта библиотек.
по количеству регистров 2000 штук и длине программы в 8000 шагов.
Маловато. Есть возможность увеличить?
отсутсвуют часть команд (в том числе FOR/NEXT)
Вот, заметил только сейчас. Значит, далеко не полная поддержка. Плохо.
Пн мар 23, 2020 10:48:58
LD ST SFC - это оболочка на компе
в мк грузится скомпилированная хрень, она наверное соответсвует LD
по мицубисевской доке если смотреть , то fx1 и fx2 реализованны на 90%
fx3 - не реализован (новые команды которых нет в 1 и 2 fxсе)
под все я подрузумеваю вот эти 90%
у меня есть 3 или 4 разных проекта, тот что я перепахиваю и выложил единственный рабочий
увеличить память программы не проблема - использовать дополнительные 64к недокументированные
память регистров - нет, только если поставить внешнюю память
кстати FOR/NEXT нет ни в одном из проектов
в моем есть какие то обрезки, как будто народ по удалял куски кода
Пн мар 23, 2020 11:07:56
LD ST SFC - это оболочка на компе
Не совсем. Поддержка SFC требует реализации ряда команд.
А свои проги на чём ваяешь, только на LD?
Пн мар 23, 2020 12:11:31
LD ST SFC - это оболочка на компе
Не совсем. Поддержка SFC требует реализации ряда команд.
А свои проги на чём ваяешь, только на LD?
да, так привычней
Пн мар 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.
Пн мар 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 регистров
можно проект увидеть ?
Пн мар 23, 2020 13:08:05
До дома доберусь- вышлю.
Пн апр 13, 2020 18:53:15
<font style="vertical-align: inherit;"><font style="vertical-align: inherit;">imsushka</font></font>,
hi
Ср апр 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 не стоит и некогда его не использовал.
Ср апр 15, 2020 13:40:10
он начально и был на кейле
просто мне чем то не устроил кейл и мне досикус переделал на иар
но насколько я помню кейловый вариант тоже работал
Ср апр 15, 2020 17:42:19
Запаял кварц на 12 - не работает совсем.
Проект Plc.rar скомпилирован для STM32F103C8T6 ?
Ср апр 15, 2020 17:54:48
alexvp, дай вспомнить , давно дело было.
Сб май 02, 2020 09:42:29
иар 8,32
9600 усарт2 для связи с девелопером
115200 усарт3 - логи работы
19200 усарт1 - модбус (не проверял, лень, но должен рабртать)
макс7219 - 4 штуки, эмуляция 256 портов вывода (~500 мксек обновление)
на вход не пробовал, нету 165 микрух готовых
лсд выводит всякую фигню, для себя
а работает или нет это вы мне говорите
- Вложения
-
- PLC.part02.rar
- (730.88 KiB) Скачиваний: 439
-
- PLC.part01.rar
- (750 KiB) Скачиваний: 553
Сб май 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ІЅіМРт
}
И такое везде. Я уже не говорю про выставление маркеров ошибки и переполнения.
Сб май 02, 2020 12:04:31
производители процессоров упростили процессоры и переложили контроль на компилятор
производители компиляторов упростили компилятор и переложили контроль на програмиста
програмист забил
использовать можно, просто контроль на конечном пользователе
- cmp k0 d0 m0
ldi m1 - div d1 d0 d2
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.