User Tools

Site Tools


plc:работа_с_расширителями_портов_modbus_через_hardware_plc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
plc:работа_с_расширителями_портов_modbus_через_hardware_plc [2019/01/01 19:55] skirillovplc:работа_с_расширителями_портов_modbus_через_hardware_plc [2019/01/01 20:16] skirillov
Line 20: Line 20:
 | 60030 | **Старт записи**.  Запись в этот регистр инициирует посылку сообщения в удаленный контроллер по шине Modbus. Значение, записанное в этот регистр будет адресом, по которому осуществляется запись. Значение для записи будет взято из скрытого регистра  | | 60030 | **Старт записи**.  Запись в этот регистр инициирует посылку сообщения в удаленный контроллер по шине Modbus. Значение, записанное в этот регистр будет адресом, по которому осуществляется запись. Значение для записи будет взято из скрытого регистра  |
 | 60020 | **Адрес для операции чтения**. Записанное в регистр значение будет защелкнуто в регистре **Адрес для чтения**. При операции | | 60020 | **Адрес для операции чтения**. Записанное в регистр значение будет защелкнуто в регистре **Адрес для чтения**. При операции |
-| 60031 | **Чтение**. При чтении с этого регистра инициируется посылка в удаленное устройство команды чтения регистра с адреса, запомненным при записи в регистр 60020. PLC контроллер зачыпает на время ожидания ответной посылки из удаленного устройства. | +| 60031 | **Чтение Регистра**. При чтении с этого регистра инициируется посылка в удаленное устройство команды чтения регистра с адреса, запомненным при записи в регистр 60020. PLC контроллер зачыпает на время ожидания ответной посылки из удаленного устройства. | 
-| 60035 | **Запись**. При записи в этот регистр осуществляется операция записи в устройство Modbus с помощью команды WRITE_MULTIPLE_COILS (0xf). Адрес регистра для записи задается в младших 16 битах (младшее слово) записываемого значения. Количество бит, которые надо записать задаются в старшем байте. \\ Например - 0x080000FF - включить 8 бит регистра \\ 0x080000F0 - включить старшие 4 бит регистра и выключить младшие 4 бит 8-битного регистра. | +| 60035 | **Запись битового поля**. При записи в этот регистр осуществляется операция записи в устройство Modbus с помощью команды WRITE_MULTIPLE_COILS (0xf). Адрес регистра для записи задается в младших 16 битах (младшее слово) записываемого значения. Количество бит, которые надо записать задаются в старшем байте. \\ Например - 0x080000FF - включить 8 бит регистра \\ 0x080000F0 - включить старшие 4 бит регистра и выключить младшие 4 бит 8-битного регистра. | 
-| 60036 | **Чтение**. При чтении с этого регистра инициируется посылка в удаленное устройство команды чтения входных бит с адреса, запомненного при записи в регистр 60020. PLC контроллер засыпает на время ожидания ответной посылки из удаленного устройства. | +| 60036 | **Чтение Битового поля**. При чтении с этого регистра инициируется посылка в удаленное устройство команды чтения входных бит с адреса, запомненного при записи в регистр 60020. PLC контроллер засыпает на время ожидания ответной посылки из удаленного устройства. | 
-| 60037 | **Запись**. При записи в этот регистр осуществляется операция записи в устройство Modbus с помощью команды WRITE_SINGLE_REGISTER (0x6). В параметре задается адрес регистра. Ид. номер устройства и записываемое значение хранится в регистрах 60010, 60019. |+| 60037 | **Запись регистра**. При записи в этот регистр осуществляется операция записи в устройство Modbus с помощью команды WRITE_SINGLE_REGISTER (0x6). В параметре задается адрес регистра. Ид. номер устройства и записываемое значение хранится в регистрах 60010, 60019. |
  
 Примеры PLC программ для управления Modbus расширителями портов Примеры PLC программ для управления Modbus расширителями портов
Line 53: Line 53:
  
  
-3. Запись в выходной регистр +3. Запись в дискретные выходы.
  
 <code C> <code C>
  
 +  gvarset(60010,1);    //Задание Ид. номера устройства
 +  gvarset(60019,0xff); //Записываемое значение
  
-  gvarset(60010,1);   //to #1 +  x=(8<<24)+0xFF     //Записываем 8 бит, включить все 8 выходов. 
-  gvarset(60019,0xff);//set Register Value +  gvarset(60035,x);    //Послать команду
- +
-x=(8<<24)+0x64; +
-gvarset(60035,x);//send value to Address +
- +
- +
-  gvarset(60010,0);   //Установить Ид. удаленного устройства (0) +
-  gvarset(60019,1);   //Установить значение регистра (1) +
-  gvarset(60037,0x64);//Установить адрес регистра (0x64) и послать Modbus кманду+
  
 </code> </code>
  
 +===== Автоматический опрос Modbus расширителей. =====
  
 +В myCNC имеется возможность включить автоматический опрос Mosbus устройств.
 +Для этого необходимо задать соответствующие параметры в окне настроек "I/O Expand cards mapping"
  
 +1) Необходимо запомнить что опрашивать 
 + - Modbus Input Holding Register - Группу входных регистров (2, 4, 6 или 8 регистров)
 + - Modbus/Coil Input expansion - Входные дискретные выходы
 + - Modbus/Coil Output expansion - Выходные дискретные выходы
  
-8-bits counter to Modbus output pins example+2) Ид. номер устройства Modbus
  
-<code C> +3Порт источника - В случае Modbus устройства это адрес регистра для чтения/записи
- gvarset(60010,1);//set server address to #1 +
- data=0; +
- x=(8<<24)+0x0; +
- +
-do{ +
- +
- count=(count+1)&0x3f; +
- if (count==0) +
-+
- data=(data+1)&0xff; +
- gvarset(60019,data);//set Register Value +
- gvarset(60035,x);//send value to Address +
- }; +
-}while(1); +
-</code> +
- +
- +
- +
- +
- +
-<code c> +
-main() +
-+
-  gvarset (60010,40);    //Set Device ID (40) +
-  gvarset (60011,1);     //Set Modbus ASCII +
-  gvarset (60012,9600);  //Set bitrate 9600bps +
-  gvarset (60013,0x801); //Set communication parameters 8,N,1 +
-  gvarset (60019,12345); //Set Value to write (12345) +
-  gvarset (60030,0x1001);//Write the Value (12345) to Register #0x1001 +
- +
-  exit(99); +
-}; +
-</code>+
  
 +4) Порт назначения - В случае Mapping Modbus портов - это номер 8-битного порта.
  
-Modbus Scheduler in myCNC has 4 messages queueUp to 4 registers can be written immediately from PLC procedure. Modbus manager will send it one-by-one and will be waiting a reply from Modbus device after each message. +Например, если это **выходы** и Порт назначения =0, то при записи в порты 0..7 все значения будут параллельно транслироваться и на выходные пины Modbus устройства,
  
-Modbus manager will repeat the message to device up to 4 times in case no reply in 250ms.+если это **входы** и Порт назначения =2, то состояние входных пинов Modbus устройства бубут транслироваться на входы 16...23 контроллера myCNC.
  
-<code>Important! +Обращение с оттранслированными входными и выходными пинами будет такое жекак и с обычными входами-выходами контрлллера myCNC. Надо только иметь ввиу задержку, возникающую при опросы Modbus устройств. Цикл обращения к Modbus устройству составляет около 30мс.
-If Modbus device controlled directly from PLC procedure"RS485/Modbus communication"  +
-checkbox should be UNCHECKED in "Cfg->Technology->Spindle" configuration dialog </code>+
  
-{{ mycnc:mycnc-spindle-modbus-001.png?900 }} 
  
plc/работа_с_расширителями_портов_modbus_через_hardware_plc.txt · Last modified: 2019/01/01 20:34 by skirillov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki