Archived
                
                
                    
                
                    
                            Этот пост заблокирован, редактирование отключено
Программное обеспечениеВопросы по zetFBDЧитаем по Modbus
Вопросы по системе программирования контроллеров Z400 и Z401
Исходное сообщение:
                                    leszkin, 27.08.2015, 16:49                                
                                                    
Читаем по Modbus
                    Михаил, приветствую.
Подскажите по конкретному примеру пожалуйста.
Адрес нужного регистра по мануалу устройства - 4001. Функция InputRegisters.
ОРС-сервером читаю его без проблем, а контроллером не могу.
На скрине пример тэга, который успешно читается ОРС-сервером. Как прочитать эту же переменную контроллером?
з.ы. порт контроллера сконфигурирован верно.
                
                            Подскажите по конкретному примеру пожалуйста.
Адрес нужного регистра по мануалу устройства - 4001. Функция InputRegisters.
ОРС-сервером читаю его без проблем, а контроллером не могу.
На скрине пример тэга, который успешно читается ОРС-сервером. Как прочитать эту же переменную контроллером?
з.ы. порт контроллера сконфигурирован верно.
Ответы:
                                        leszkin, 28.08.2015, 09:32                                    
                                                            
Читаем по Modbus
                                                
                        вот более подробная выдержка из мануала устройства.
Данные передаются байтами и словами (2 байта). Слова передаются старшим байтом вперед, т.е. если передается слово 0x1234, то 0x12 в PDU идет раньше 0x34.
Далее по тексту в поле контрольная сумма CRC16, которая служит для обнаружения ошибок при передаче битов данных. У контрольной суммы младшее слово приводится впереди, т.е. настоящая контрольная сумма перевернута (напри-мер: 0xBDCB для PC будет 0xCBBD).
А считать необходимо то, что в аттаче. Эксперементирую с адресами чтения в контроллере. Блок чтения отдает то ошибку 16, то 17...
                    
                    
                                    Данные передаются байтами и словами (2 байта). Слова передаются старшим байтом вперед, т.е. если передается слово 0x1234, то 0x12 в PDU идет раньше 0x34.
Далее по тексту в поле контрольная сумма CRC16, которая служит для обнаружения ошибок при передаче битов данных. У контрольной суммы младшее слово приводится впереди, т.е. настоящая контрольная сумма перевернута (напри-мер: 0xBDCB для PC будет 0xCBBD).
А считать необходимо то, что в аттаче. Эксперементирую с адресами чтения в контроллере. Блок чтения отдает то ошибку 16, то 17...
                                        mike, 28.08.2015, 09:52                                    
                                                            
Читаем по Modbus
                                                
                        Добрый день!
Часом не к эл. счетчику подключаетесь?
                    
                                    Часом не к эл. счетчику подключаетесь?
                                        leszkin, 28.08.2015, 10:13                                    
                                                            
Читаем по Modbus
                                                
                        датчик перепада давления Прома-ИДМ.
Ошибку 17 поборол - после настройки порта не сохранил проект, и заново его открыв пытался передавать с контролем четности, а его в датчике нет.
А вот на какой адрес указывать в блоке чтения так и не догоняю... 34000?
                    
                                    Ошибку 17 поборол - после настройки порта не сохранил проект, и заново его открыв пытался передавать с контролем четности, а его в датчике нет.
А вот на какой адрес указывать в блоке чтения так и не догоняю... 34000?
                                        MegaVolt, 28.08.2015, 10:14                                    
                                                            
Читаем по Modbus
                                                
                        [quote author=leszkin link=topic=36.msg223#msg223 date=1440743546]
вот более подробная выдержка из мануала устройства.
Данные передаются байтами и словами (2 байта). Слова передаются старшим байтом вперед, т.е. если передается слово 0x1234, то 0x12 в PDU идет раньше 0x34.
Далее по тексту в поле контрольная сумма CRC16, которая служит для обнаружения ошибок при передаче битов данных. У контрольной суммы младшее слово приводится впереди, т.е. настоящая контрольная сумма перевернута (напри-мер: 0xBDCB для PC будет 0xCBBD).
А считать необходимо то, что в аттаче. Эксперементирую с адресами чтения в контроллере. Блок чтения отдает то ошибку 16, то 17...
[/quote]
16 это устройство не ответило, 17 ошибки CRC..... А и В правильно подключаете?
                    
                                    вот более подробная выдержка из мануала устройства.
Данные передаются байтами и словами (2 байта). Слова передаются старшим байтом вперед, т.е. если передается слово 0x1234, то 0x12 в PDU идет раньше 0x34.
Далее по тексту в поле контрольная сумма CRC16, которая служит для обнаружения ошибок при передаче битов данных. У контрольной суммы младшее слово приводится впереди, т.е. настоящая контрольная сумма перевернута (напри-мер: 0xBDCB для PC будет 0xCBBD).
А считать необходимо то, что в аттаче. Эксперементирую с адресами чтения в контроллере. Блок чтения отдает то ошибку 16, то 17...
[/quote]
16 это устройство не ответило, 17 ошибки CRC..... А и В правильно подключаете?
                                        MegaVolt, 28.08.2015, 10:17                                    
                                                            
Читаем по Modbus
                                                
                        А какой регистр необходимо прочитать ??? 4001 это десятичный или hex??                    
                    
                                    
                                        mike, 28.08.2015, 10:18                                    
                                                            
Читаем по Modbus
                                                
                        [quote author=leszkin link=topic=36.msg225#msg225 date=1440745999]
А вот на какой адрес указывать в блоке чтения так и не догоняю... 34000?
[/quote]
не понял
                    
                                    А вот на какой адрес указывать в блоке чтения так и не догоняю... 34000?
[/quote]
не понял
                                        leszkin, 28.08.2015, 10:24                                    
                                                            
Читаем по Modbus
                                                
                        по мануалу выходит, что меня интересуют регистры 4001 и 4002. указывая их в адресе чтения в zetFBD - получаю 16 ошибку. пробовал и десятичный и шестнадцатиричный адрес. но я уже что-то перестаю доверять данной инструкции  :D
основной вопрос: как сделать запрос указанный в скрине в старт-посте.
                    
                    
                                    основной вопрос: как сделать запрос указанный в скрине в старт-посте.
                                        leszkin, 28.08.2015, 10:27                                    
                                                            
Читаем по Modbus
                                                
                        должно получиться как то так.
                    
                    
                                    
                                        MegaVolt, 28.08.2015, 11:04                                    
                                                            
Читаем по Modbus
                                                
                        Запрос: 02 04 00 00 00 02 71 f8 
Как я вижу по запросу компьютер спрашивает у устройства с адресом 2 по 04й функции с 0000 адреса 00 02 регистра
следовательно в блоке вам необходимо указать 0 адрес.. 2 регистра
                    
                                    Как я вижу по запросу компьютер спрашивает у устройства с адресом 2 по 04й функции с 0000 адреса 00 02 регистра
следовательно в блоке вам необходимо указать 0 адрес.. 2 регистра
                                        MegaVolt, 28.08.2015, 11:06                                    
                                                            
Читаем по Modbus
                                                
                        Дело в том что в некоторой документации в адресе первый байт является кодом функции, а адрес в этом случае нужно уменьшить на 1                    
                    
                                    