Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

в исходнике есть такое:

Код: Выделить всё

      //Changing the operating state control, the next switch-mode converter to a running state
      if( (sys_status == 0x10) && ((GPIOA_IDR & (1<<6)) == 0) )sys_status = 0x30;
По схеме на PA6 типа тумблер, может надо сделать ВКЛ
Реклама
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3187247#p3187247"]в исходнике есть такое:

Код: Выделить всё

      //Changing the operating state control, the next switch-mode converter to a running state
      if( (sys_status == 0x10) && ((GPIOA_IDR & (1<<6)) == 0) )sys_status = 0x30;
По схеме на PA6 типа тумблер, может надо сделать ВКЛ[/uquote]
щелкал я этим "тумблером" - связи нет...
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

должно еще зажечь LED1
по ком порту микронтроллер ждет передачу от ПК и чтоб совпало:

Код: Выделить всё

if((uart0_rxbuf[0] == 0x01)&&(uart0_rxbuf[1] == 0x55)&&(uart0_rxbuf[2] == 0xaa)&&(uart0_rxbuf[11] == 0x12)&&(uart0_rxbuf[12] == 0xef)&&(uart0_rxbuf[13] == 0xff)) 
в зависимости от других значений в принятом буфере будут выполняться те или иные действия и будут ответы, в том числе и запись программы PLC.
Программа ПК что нибудь похожее отправляет? Посмотреть можно каким нибудь типа Portmon.
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

GX Developer FX. шлет по ком порту -

Изображение Изображение

несколько раз стучит и отваливается ,так как ответа нет...

led1 зажигается на ~0,3 секунды после подачи питания или сброса контроллера.

Добавлено after 12 minutes:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
Заливал STMFlashLoader Demo bin файл через то-же ком порт , может по другим адресам лить нужно ? объем памяти контроллеров разный...
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

адрес начала программы вроде у всех одинаковый.
Вариант теста COM порта:
Там есть комментированное в main.c:

Код: Выделить всё

UART0_setup();
//  uart0_txptr = 0;
//  uart0_txall = 2;
//  COM0_OUT;
//  USART1->DR = 0x55;
можно раскомментировать и глянуть отправляет ли чего микроконтроллер.
Реклама
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

Плохо,что проект в iare, я немного в кеиле освоился...

Добавлено after 5 hours 50 minutes 48 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
это что монитор ком порта показывает. тоже самое ,что на осциллографе передается в контроллер 0Х05. а в ответ тишина...
Вложения
1234.rar
(1.73 КБ) 607 скачиваний
Новый текстовый документ (2).txt
(22.05 КБ) 614 скачиваний
Новый текстовый документ.txt
монитор ком порта
(922 байт) 494 скачивания
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

настроен COM порт в программе ПК похоже на 9600
но в исходнике по умолчанию:

Код: Выделить всё

//============== Abnormal after treatment  9600bps 8 N 1
	default:
	/* Set up UART Baud rate  38400bps */
	USART_InitStructure.USART_BaudRate = 38400;
в комментарии одно, в коде другое - может попробовать 9600. Похоже скорость порта можно изменять, только после заливки программы:

Код: Выделить всё

switch(program[0x1C])
	{

//=============No parity communication setting area ======
	case(0x01):
	/* Set up UART Baud rate  4800bps */
	USART_InitStructure.USART_BaudRate = 4800;
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

Олег спасибо,я это тоже видел игрался со скоростью. толку нет... В рун стал заходить (светодиодик светится)проблема была изначально в отсутствие еепром, а потом наличии ее ,но не пустой... стер епром ,при включении в рун переходит на переключатель рун-стоп реагирует,но связи по ком порту нету.
вот этот кусок ,я как-то слабо понимаю
if((uart0_rxptr > 4) && (uart0_time > 9))
{
LED0_ON;
LED1_ON;
if((uart0_rxbuf[0] == 0x01)&&(uart0_rxbuf[1] == 0x55)&&(uart0_rxbuf[2] == 0xaa)&&(uart0_rxbuf[11] == 0x12)&&(uart0_rxbuf[12] == 0xef)&&(uart0_rxbuf[13] == 0xff))

uart0_rxptr - это что и почему должно быть больше 4 ? подключил светодиодики при передачи с копма 0x5 не проходит ,если больше 010111 проходит,но дальше естественно нет.
как узнать ,что находится в буферах uart0_rxbuf[0], [1] и т.д. ?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

uart0_rxptr счетчик принятых байт, прибавляется в прерывании COM порта
uart0_time временной счетчик, прибавляется в прерывании системного таймера /* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */
т.е. будет реагировать если пришло более 4 байт + прошло какое то время, похоже 10mS.
Могу ошибаться, но микроконтроллер потом ждет типа преамбулы по ком порту 0x01 0x55 0xaa и завершение передачи 0x12 0xef 0xff, между преамбулой и концом команды микроконтроллеру.
Если раскомментировать USART1->DR = 0x55;, микроконтроллер при включении пошлет байт и будет видно работает ли COM порт
Как узнать - лучше отладчик, можно в другой COM порт выдавать...
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3188717#p3188717"]uart0_rxptr счетчик принятых байт, прибавляется в прерывании COM порта
uart0_time временной счетчик, прибавляется в прерывании системного таймера /* SysTick interrupt each 1000 Hz with HCLK equal to 72MHz */
т.е. будет реагировать если пришло более 4 байт + прошло какое то время, похоже 10mS.
Могу ошибаться, но микроконтроллер потом ждет типа преамбулы по ком порту 0x01 0x55 0xaa и завершение передачи 0x12 0xef 0xff, между преамбулой и концом команды микроконтроллеру.
Если раскомментировать USART1->DR = 0x55;, микроконтроллер при включении пошлет байт и будет видно работает ли COM порт
Как узнать - лучше отладчик, можно в другой COM порт выдавать...[/uquote]
примерно из кода ,я так и предсталял... с stm32 совсем мало работаю. Но ,тогда я в курить не могу одного - какие нафиг 4 байта, если на первой странице (продублирую немного)
imitation Mitsubishi FX1N PLC communication protocol C Code Demonstration program



Baud Rate: 9600
StopBits: 1, Parity: Even, DataBits: 7
Baud Rate: 9600
StopBits: 1, Parity: Even, DataBits: 7
PC : 05 // ENQ request
PLC: 06 // PLC Receive the correct response
PC : 02 30 30 45 30 32 30 32 03 36 43 // Discover PLC Type: FX1N \ FX1S
PLC: 02 36 32 36 36 03 44 37 // '6266'PLC model FX1N;' C256'PLC model FX1S.
PC : 05 // ENQ request
PLC: 06 // PLC Receive the correct response
PC : 02 45 30 30 30 31 43 30 30 31 03 44 44 // Discover PLC Current status: suspended \ Run
PLC: 02 30 41 03 37 34 // '0A'PLC pause;' 09'PLC run
PC : 05 // ENQ request

при проверки связи в среде разработки ,мы на контроллер отправляем PC : 05 и должны получить ENQ request . Где здесь 4 байта? Тобишь даже в первый if уже не попасть... Цэ я дурной ,иль лыжи не едут...
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

да не - похоже исходник не того, не рабочий, еще можно глянуть файл "uart.c.bak" но все равно не то.
Придется, если очень надо, идти по стопам Greeds74:

Код: Выделить всё

А вот что касается реализации - я не использовал код, который тут выложен.
Всё пришлось проходить с самого начала.
Если будут вопросы по реализации - пишите, постараюсь помочь.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение dosikus »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3188994#p3188994"]да не - похоже исходник не того, не рабочий, еще можно глянуть файл "uart.c.bak" но все равно не то.
Придется, если очень надо, идти по стопам Greeds74:[/uquote]


От тебя я подобного не ожидал.
Ну вот кто вам сказал что на первой странице выложена секвенция байт посылаемая с писюка и обратно?
Это сами команды.
Ну хоть протокол изучите https://www.google.ru/url?sa=t&rct=j&q= ... KwlaCnDTsg


yuriy m, oleg110592 вы хоть краем уха о модбас слышали? Начните с нее изучение...
Вы что всеръез решили что ПЛК будет на ваши одиночные байтики реагировать?
Для приличия хоть на структуру посылок взгляните.
№ station, № PLC ни о чем не говорит , нет?


Изображение Изображение Изображение



[uquote="oleg110592",url="/forum/viewtopic.php?p=3188994#p3188994"]Придется, если очень надо, идти по стопам Greeds74:[/uquote]

Вперед и с песнями , изобреДатели лясипедов...
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

а-а-а, Семен Семеныч - про модбас вообще не подумали, спасибо за толчек в нужном направлении :oops:
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

[uquote="dosikus",url="/forum/viewtopic.php?p=3189335#p3189335"]От тебя я подобного не ожидал.
Ну вот кто вам сказал что на первой странице выложена секвенция байт посылаемая с писюка и обратно?
Это сами команды.[/uquote]
Тогда вопрос - это то ,что шлют разные среды Wecon plc Editor ,GX Developer FX, GX Works2 при нажатии кнопки коннект(проверка связи и т.д.). тоже самое я вижу на осциллографе... осциллограмма выложена выше.. Может я ошибаюсь, но PLC должен что-то ответить на 0x05 ?
Вложения
2017-09-22_17-03-35.png
(71.4 КБ) 1011 скачиваний
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение dosikus »

Я вижу по протоколу что передается не только ENQ 0x05 но и номера ПЛК, станции контрольная сумма. У вас сии номера соответствуют , забитым в ПЛК и выбранным в программе?
Опять таки , в исходниках задействованы 2 UART
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

[uquote="dosikus",url="/forum/viewtopic.php?p=3189438#p3189438"]Я вижу по протоколу что передается не только ENQ 0x05 но и номера ПЛК, станции контрольная сумма. У вас сии номера соответствуют , забитым в ПЛК и выбранным в программе?
Опять таки , в исходниках задействованы 2 UART[/uquote]
В программе выбирается серия FX и все. Второй uart - 485 порт . По протоколу может быть передается не только ENQ 0x05 ,но в реале то что я выложил,то и передают программы. проверенно вин7 и ХР.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение dosikus »

yuriy m, вы что такое интерфейс представляете?
Что такое целостность данных и контрольная сумма?
У вас есть опыт работы хоть с каким нибудь устройством использующим протоколы?

По сабжу - смотрите в отладчике и лог анализаторе, что передается и что принимает ПЛК.
yuriy m
Первый раз сказал Мяу!
Сообщения: 23
Зарегистрирован: Пт окт 17, 2014 12:42:38

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение yuriy m »

Обычно я спорить не люблю и не участвую в ненужных спорах,но...
[uquote="dosikus",url="/forum/viewtopic.php?p=3189335#p3189335"]yuriy m, oleg110592 вы хоть краем уха о модбас слышали? Начните с нее изучение...[/uquote]
[uquote="dosikus",url="/forum/viewtopic.php?p=3189467#p3189467"]yuriy m, вы что такое интерфейс представляете?
Что такое целостность данных и контрольная сумма?
У вас есть опыт работы хоть с каким нибудь устройством использующим протоколы?[/uquote]
За 20 с лишнем лет в промышленной электроники .. ну,,, может быть :))) ....

[uquote="dosikus",url="/forum/viewtopic.php?p=3189335#p3189335"]Вы что всеръез решили что ПЛК будет на ваши одиночные байтики реагировать?[/uquote]
Посещается для "ЗНАЮЩИХ" модбас, rs232, 485... и что ПЛК не реагирует на байтики - прикрепил картинку (желтым передача от PC - 0x05 и сразу же ответ от ПЛК синим) и только после этого идет все остальное... 8) . http://img.radiokot.ru/files/100608/med ... dzb753.jpg
Дальше умываю руки... :tea:

Добавлено after 7 hours 58 minutes 51 second:
[uquote="oleg110592",url="/forum/viewtopic.php?p=3188994#p3188994"]похоже исходник не того, не рабочий, еще можно глянуть файл "uart.c.bak" но все равно не то.
[/code][/uquote]
Олег абсолютно согласен.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение oleg110592 »

не все так просто, если с учетом модбас взглянуть:
В Modbus RTU разделителем сообщений (фреймов, содержащих запросы и ответы) является тишина на линии в течение не менее 3,5 символов. С учетом того, что стандартный символ передается УАРТом 11-ю битами, получаем длительность этого периода ( называют его t3.5), равную 38,5 периодов бодрейта. Например, для 9600 бод — 4,01 мс (38,5/9600).
Изображение
эх времени мало сейчас разбираться...
нашел по теме еще - там какие то исходники для 51 и STM32 Keil:
https://github.com/KeyMove/STM32-PLC-FX1N
сходу нормально не компилится :(
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сообщение dosikus »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3190103#p3190103"]сходу нормально не компилится :([/uquote]
Комменты у асм вставок убери.
Ответить

Вернуться в «ARM»