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 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{+4) Порт назначения - В случае Mapping Modbus портов - это номер 8-битного порта.
  
- count=(count+1)&0x3f; +Например, если это **выходы** и Порт назначения =0, то при записи в порты 0..7 все значения будут параллельно транслироваться и на выходные пины Modbus устройства,
- if (count==0+
-+
- data=(data+1)&0xff; +
- gvarset(60019,data);//set Register Value +
- gvarset(60035,x);//send value to Address +
- }; +
-}while(1); +
-</code>+
  
 +если это **входы** и Порт назначения =2, то состояние входных пинов Modbus устройства бубут транслироваться на входы 16...23 контроллера myCNC.
  
 +Обращение с оттранслированными входными и выходными пинами будет такое же, как и с обычными входами-выходами контрлллера myCNC. Надо только иметь ввиу задержку, возникающую при опросы Modbus устройств. Цикл обращения к Modbus устройству составляет около 30мс.
  
  
- 
-<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> 
  
  
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