Реклама / ООО «ИЗОЛПРОЕКТ» / ИНН: 7725566484 | ERID: 2Vtzqx6kV7S
IPB IPB
Проектирование, монтаж, наладка, сервис


Здравствуйте, гость ( Вход | Регистрация )

- Стандарт НП «АВОК» 7.11-2024
«Рекомендации по проектированию инженерных систем
дошкольных образовательных организаций»

АВОК в соц. сетях
ИНН: 7714824045 | erid: 2VtzqwzKQiU
 
Добавить ответ в эту темуОткрыть тему
> Shneider M238, вопрос по modbus
All_Ex81
сообщение 11.4.2013, 14:31
Сообщение #1





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



есть контроллер м238 от шнайдера,
настраиваю в нем relocation table для приема-передачи данных по modbus,
в relocation table битовые поля преобразуются в int,
поэтому из скады я не могу установить бит моментно (т.е. установить бит и сразу его обнулить),
а могу только послать значение равное 1.
Вопрос к знающим - как моментно управлять битовыми данными в этом контроллере?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
AlexG
сообщение 12.4.2013, 12:11
Сообщение #2





Группа: Участники форума
Сообщений: 831
Регистрация: 20.6.2006
Пользователь №: 3194



Какие функции протокола Modbus вы предполагаете использовать для "моментной" установки и сброса бита?
Все известные мне функции протокола делают запись один раз и соответственно, вам потребуется два запроса к контроллеру, один чтобы установить бит и один чтобы сбросить. То что биты упакованы в регистры по 16 значения не имеет. При побитном доступе функциями 1, 5, 15 "моментного" изменения бита всерано не получить.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
All_Ex81
сообщение 12.4.2013, 13:09
Сообщение #3





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



под моментным сигналом я подразумевал возможности скада устанавливать бит моментно, с интами скада так не работает.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
san
сообщение 12.4.2013, 13:35
Сообщение #4





Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316



Цитата(All_Ex81 @ 12.4.2013, 13:09) *
под моментным сигналом я подразумевал возможности скада устанавливать бит моментно, с интами скада так не работает.

я тоже не понял, что значит моментно. Если это поставить лог "1", чтоб после этого этот бит скинулся в "0", то это либо должна сделать сама СКАДА, либо ПЛК программным путём (незавсимо от типа ПЛК). Если имеется в виду побитовый доступ, то нужно использовать функции записи COILS. Отображение в ПЛК Modbus переменных как int - это всего лишь отображение.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
All_Ex81
сообщение 12.4.2013, 16:06
Сообщение #5





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



перефразирую
предположим есть ключ управления, когда его переводим - цепь замкнута, и остается замкнутой пока ключ в этом положении.
есть кнопка управления - когда ее нажимаем - цепь замыкается, когда отпускаем - размыкается.

вот мне и требуется получить кнопку
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
san
сообщение 12.4.2013, 17:21
Сообщение #6





Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316



Цитата(All_Ex81 @ 12.4.2013, 16:06) *
перефразирую
предположим есть ключ управления, когда его переводим - цепь замкнута, и остается замкнутой пока ключ в этом положении.
есть кнопка управления - когда ее нажимаем - цепь замыкается, когда отпускаем - размыкается.

вот мне и требуется получить кнопку

Тогда Modbus тут не при чём. Это может сделать или SCADA (во многих такой функционал есть) или SCADA+PLC. В СКАДЕ устанвливайте бит (послать 1), а в ПЛК при его установке - скидывайте. Надеюсь до бита INT в программе ПЛК Вы умеете добираться?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
All_Ex81
сообщение 13.4.2013, 11:15
Сообщение #7





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



во всех скада есть функционал самосброса bool, инты они не сбрасывают, вот и спрашиваю может кто сталкивался, в плк городить огород сброса не хотел
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
san
сообщение 13.4.2013, 13:14
Сообщение #8





Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316



Цитата(All_Ex81 @ 13.4.2013, 11:15) *
во всех скада есть функционал самосброса bool, инты они не сбрасывают, вот и спрашиваю может кто сталкивался, в плк городить огород сброса не хотел
А при чём тут инты? Доступайтесь к этой зоне как к битам и всё.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
All_Ex81
сообщение 13.4.2013, 15:39
Сообщение #9





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



Цитата(san @ 13.4.2013, 14:14) *
А при чём тут инты? Доступайтесь к этой зоне как к битам и всё.

подскажите пожалуйста как это сделать?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
san
сообщение 13.4.2013, 15:50
Сообщение #10





Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316



Вы ж не сказали какая СКАДА и в какую ячейку помещена переменная. По идее надо обратится к Coils, указав (адрес Holding Registers)*16+номер_бита.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
All_Ex81
сообщение 13.4.2013, 16:11
Сообщение #11





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



Цитата(san @ 13.4.2013, 16:50) *
Вы ж не сказали какая СКАДА и в какую ячейку помещена переменная. По идее надо обратится к Coils, указав (адрес Holding Registers)*16+номер_бита.

все и дело что к Coils я обратится не могу, 238 (через relocation table) воспринимает только 6 команду модбас,
загрузил шнайдеров этой темой, уже 4 дня думают
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
san
сообщение 13.4.2013, 17:02
Сообщение #12





Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316



А как же это:
Цитата("SoMachine Help")
When the controller is configured as Modbus Slave, the following Modbus requests are supported:
Types Function Function Codes
Code/Sub Code
Data Access (1 Bit) Physical Discrete Inputs and Outputs Read Coils 01
Read Discrete Inputs 02
Write Multiple Coils 15
Data Access (16 Bits) Physical Input Registers Read Holding Registers 03
Write Single Register 06
Write Multiple Registers 16
Read/Write Multiple Registers 23
Diagnostics Diagnostics 08
Read Device Identification 43/14

Так всё таки какая ячейка регистра и какая скада? К регистру удалось доступиться?

Тут ещё можно спросить: http://forum.se-automation.in.ua/index.php, там есть хороший спец по Сомашин.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
All_Ex81
сообщение 13.4.2013, 18:23
Сообщение #13





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



скада без разницы какая,
регистр например MW0 - но он int!!! а не MB0
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
san
сообщение 13.4.2013, 18:32
Сообщение #14





Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316



СКАДА имеет значение, так как формат записи у всех скад разный. Если Вы в СКАДЕ обращаетесь к переменной как например к %MW20, и попадаете в тот регистр который нужно, то чтоб обратится к 3 му биту этого инта попробуйте вписать %M323 (20*16+3). Если обращаетесь как 400020, тогда попробуйте к 100323.
Ссылку на хелп я Вам привёл к тому, чтоб показать, что к памяти М238 можно обращаться как к битовой области. То есть битовая и регистровая область там совпадают. К сожалению наш стенд уехал на время, так что проверить не смогу. Если всё-таки хотите попробовать решить проблему - вылаживайте все детали.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
All_Ex81
сообщение 15.4.2013, 7:48
Сообщение #15





Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787



у заказчиков стоит какаято самописная скада,
я имитирую скаду с помощью панельки weintek,
relocation table начинает адресацию modbus с адреса %MW62200,
из панели получилось обратится к биту если задать формат %MW_Bit и адрес 62200.1
сейчас буду пробовать обратится и скады

Сообщение отредактировал All_Ex81 - 15.4.2013, 7:55
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
san
сообщение 15.4.2013, 8:00
Сообщение #16





Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316



Цитата(All_Ex81 @ 15.4.2013, 7:48) *
relocation table начинает адресацию modbus с адреса %MW62200,
из панели получилось обратится к биту если задать формат %MW_Bit и адрес 62200.1

...это сложнее, помогут только скрипты
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
TEA_S7
сообщение 8.4.2014, 11:03
Сообщение #17





Группа: Участники форума
Сообщений: 40
Регистрация: 12.11.2012
Пользователь №: 170062



Используйте не relocation table, а прямую адресацию.

Пример(объявления переменной с прямой адресацией):

VAR
wVar1 AT %MW100 :WORD;
END_VAR;
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

Реклама
ООО «Арктика групп» ИНН: 7713634274



ООО "Русич" ИНН 9721068883 / ЕРИД 2VtzqvMjLF8


ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqxXgvJi

Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqwyM2dc
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzquvhFWx

Последние сообщения Форума






RSS Текстовая версия Сейчас: 29.7.2025, 2:31
Политика ООО ИИП «АВОК-ПРЕСС» в отношении обработки персональных данных