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

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср сен 20, 2017 07:18:27

в исходнике есть такое:
Код:
      //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 типа тумблер, может надо сделать ВКЛ

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср сен 20, 2017 10:37:24

в исходнике есть такое:
Код:
      //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 типа тумблер, может надо сделать ВКЛ

щелкал я этим "тумблером" - связи нет...

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср сен 20, 2017 11:33:03

должно еще зажечь 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.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср сен 20, 2017 12:40:47

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

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

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

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

Добавлено after 12 minutes:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
Заливал STMFlashLoader Demo bin файл через то-же ком порт , может по другим адресам лить нужно ? объем памяти контроллеров разный...

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср сен 20, 2017 13:09:36

адрес начала программы вроде у всех одинаковый.
Вариант теста COM порта:
Там есть комментированное в main.c:
Код:
UART0_setup();
//  uart0_txptr = 0;
//  uart0_txall = 2;
//  COM0_OUT;
//  USART1->DR = 0x55;

можно раскомментировать и глянуть отправляет ли чего микроконтроллер.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Ср сен 20, 2017 19:19:12

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

Добавлено after 5 hours 50 minutes 48 seconds:
Re: Open source plc STM32F103RBT6 source code Mitsubishi PLCFX1
это что монитор ком порта показывает. тоже самое ,что на осциллографе передается в контроллер 0Х05. а в ответ тишина...
Вложения
1234.rar
(1.73 KiB) Скачиваний: 520
Новый текстовый документ (2).txt
(22.05 KiB) Скачиваний: 459
Новый текстовый документ.txt
монитор ком порта
(922 байт) Скачиваний: 409

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Чт сен 21, 2017 08:53:30

настроен 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;

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Чт сен 21, 2017 18:12:13

Олег спасибо,я это тоже видел игрался со скоростью. толку нет... В рун стал заходить (светодиодик светится)проблема была изначально в отсутствие еепром, а потом наличии ее ,но не пустой... стер епром ,при включении в рун переходит на переключатель рун-стоп реагирует,но связи по ком порту нету.
вот этот кусок ,я как-то слабо понимаю
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] и т.д. ?

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Чт сен 21, 2017 19:41:34

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 порт выдавать...

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Чт сен 21, 2017 20:03:30

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 порт выдавать...

примерно из кода ,я так и предсталял... с 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 уже не попасть... Цэ я дурной ,иль лыжи не едут...

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пт сен 22, 2017 08:42:37

да не - похоже исходник не того, не рабочий, еще можно глянуть файл "uart.c.bak" но все равно не то.
Придется, если очень надо, идти по стопам Greeds74:
Код:
А вот что касается реализации - я не использовал код, который тут выложен.
Всё пришлось проходить с самого начала.
Если будут вопросы по реализации - пишите, постараюсь помочь.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пт сен 22, 2017 15:17:54

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



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


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


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



Придется, если очень надо, идти по стопам Greeds74:


Вперед и с песнями , изобреДатели лясипедов...

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пт сен 22, 2017 16:08:10

а-а-а, Семен Семеныч - про модбас вообще не подумали, спасибо за толчек в нужном направлении :oops:

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пт сен 22, 2017 16:12:45

От тебя я подобного не ожидал.
Ну вот кто вам сказал что на первой странице выложена секвенция байт посылаемая с писюка и обратно?
Это сами команды.

Тогда вопрос - это то ,что шлют разные среды Wecon plc Editor ,GX Developer FX, GX Works2 при нажатии кнопки коннект(проверка связи и т.д.). тоже самое я вижу на осциллографе... осциллограмма выложена выше.. Может я ошибаюсь, но PLC должен что-то ответить на 0x05 ?
Вложения
2017-09-22_17-03-35.png
(71.4 KiB) Скачиваний: 919

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пт сен 22, 2017 16:47:31

Я вижу по протоколу что передается не только ENQ 0x05 но и номера ПЛК, станции контрольная сумма. У вас сии номера соответствуют , забитым в ПЛК и выбранным в программе?
Опять таки , в исходниках задействованы 2 UART

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пт сен 22, 2017 17:02:04

Я вижу по протоколу что передается не только ENQ 0x05 но и номера ПЛК, станции контрольная сумма. У вас сии номера соответствуют , забитым в ПЛК и выбранным в программе?
Опять таки , в исходниках задействованы 2 UART

В программе выбирается серия FX и все. Второй uart - 485 порт . По протоколу может быть передается не только ENQ 0x05 ,но в реале то что я выложил,то и передают программы. проверенно вин7 и ХР.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Пт сен 22, 2017 17:46:50

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

По сабжу - смотрите в отладчике и лог анализаторе, что передается и что принимает ПЛК.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб сен 23, 2017 09:31:30

Обычно я спорить не люблю и не участвую в ненужных спорах,но...
yuriy m, oleg110592 вы хоть краем уха о модбас слышали? Начните с нее изучение...

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

За 20 с лишнем лет в промышленной электроники .. ну,,, может быть :))) ....

Вы что всеръез решили что ПЛК будет на ваши одиночные байтики реагировать?

Посещается для "ЗНАЮЩИХ" модбас, rs232, 485... и что ПЛК не реагирует на байтики - прикрепил картинку (желтым передача от PC - 0x05 и сразу же ответ от ПЛК синим) и только после этого идет все остальное... 8) . http://img.radiokot.ru/files/100608/med ... dzb753.jpg
Дальше умываю руки... :tea:

Добавлено after 7 hours 58 minutes 51 second:
похоже исходник не того, не рабочий, еще можно глянуть файл "uart.c.bak" но все равно не то.
[/code]

Олег абсолютно согласен.

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб сен 23, 2017 17:53:27

не все так просто, если с учетом модбас взглянуть:
В 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
сходу нормально не компилится :(

Re: Open source plc STM32F103RBT6 source code Mitsubishi PL

Сб сен 23, 2017 18:29:22

сходу нормально не компилится :(

Комменты у асм вставок убери.
Ответить