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

|
есть контроллер м238 от шнайдера, настраиваю в нем relocation table для приема-передачи данных по modbus, в relocation table битовые поля преобразуются в int, поэтому из скады я не могу установить бит моментно (т.е. установить бит и сразу его обнулить), а могу только послать значение равное 1. Вопрос к знающим - как моментно управлять битовыми данными в этом контроллере?
|
|
|
|
|
12.4.2013, 12:11
|
Группа: Участники форума
Сообщений: 831
Регистрация: 20.6.2006
Пользователь №: 3194

|
Какие функции протокола Modbus вы предполагаете использовать для "моментной" установки и сброса бита? Все известные мне функции протокола делают запись один раз и соответственно, вам потребуется два запроса к контроллеру, один чтобы установить бит и один чтобы сбросить. То что биты упакованы в регистры по 16 значения не имеет. При побитном доступе функциями 1, 5, 15 "моментного" изменения бита всерано не получить.
|
|
|
|
|
12.4.2013, 13:09
|
Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787

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

|
Цитата(All_Ex81 @ 12.4.2013, 13:09)  под моментным сигналом я подразумевал возможности скада устанавливать бит моментно, с интами скада так не работает. я тоже не понял, что значит моментно. Если это поставить лог "1", чтоб после этого этот бит скинулся в "0", то это либо должна сделать сама СКАДА, либо ПЛК программным путём (незавсимо от типа ПЛК). Если имеется в виду побитовый доступ, то нужно использовать функции записи COILS. Отображение в ПЛК Modbus переменных как int - это всего лишь отображение.
|
|
|
|
|
12.4.2013, 16:06
|
Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787

|
перефразирую предположим есть ключ управления, когда его переводим - цепь замкнута, и остается замкнутой пока ключ в этом положении. есть кнопка управления - когда ее нажимаем - цепь замыкается, когда отпускаем - размыкается.
вот мне и требуется получить кнопку
|
|
|
|
|
12.4.2013, 17:21
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Цитата(All_Ex81 @ 12.4.2013, 16:06)  перефразирую предположим есть ключ управления, когда его переводим - цепь замкнута, и остается замкнутой пока ключ в этом положении. есть кнопка управления - когда ее нажимаем - цепь замыкается, когда отпускаем - размыкается.
вот мне и требуется получить кнопку Тогда Modbus тут не при чём. Это может сделать или SCADA (во многих такой функционал есть) или SCADA+PLC. В СКАДЕ устанвливайте бит (послать 1), а в ПЛК при его установке - скидывайте. Надеюсь до бита INT в программе ПЛК Вы умеете добираться?
|
|
|
|
|
13.4.2013, 11:15
|
Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787

|
во всех скада есть функционал самосброса bool, инты они не сбрасывают, вот и спрашиваю может кто сталкивался, в плк городить огород сброса не хотел
|
|
|
|
|
13.4.2013, 13:14
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Цитата(All_Ex81 @ 13.4.2013, 11:15)  во всех скада есть функционал самосброса bool, инты они не сбрасывают, вот и спрашиваю может кто сталкивался, в плк городить огород сброса не хотел А при чём тут инты? Доступайтесь к этой зоне как к битам и всё.
|
|
|
|
|
13.4.2013, 15:39
|
Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787

|
Цитата(san @ 13.4.2013, 14:14)  А при чём тут инты? Доступайтесь к этой зоне как к битам и всё. подскажите пожалуйста как это сделать?
|
|
|
|
|
13.4.2013, 15:50
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Вы ж не сказали какая СКАДА и в какую ячейку помещена переменная. По идее надо обратится к Coils, указав (адрес Holding Registers)*16+номер_бита.
|
|
|
|
|
13.4.2013, 16:11
|
Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787

|
Цитата(san @ 13.4.2013, 16:50)  Вы ж не сказали какая СКАДА и в какую ячейку помещена переменная. По идее надо обратится к Coils, указав (адрес Holding Registers)*16+номер_бита. все и дело что к Coils я обратится не могу, 238 (через relocation table) воспринимает только 6 команду модбас, загрузил шнайдеров этой темой, уже 4 дня думают
|
|
|
|
|
13.4.2013, 17:02
|
Группа: Участники форума
Сообщений: 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, там есть хороший спец по Сомашин.
|
|
|
|
|
13.4.2013, 18:23
|
Группа: Участники форума
Сообщений: 324
Регистрация: 8.7.2009
Из: Челябинск
Пользователь №: 35787

|
скада без разницы какая, регистр например MW0 - но он int!!! а не MB0
|
|
|
|
|
13.4.2013, 18:32
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

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

|
у заказчиков стоит какаято самописная скада, я имитирую скаду с помощью панельки weintek, relocation table начинает адресацию modbus с адреса %MW62200, из панели получилось обратится к биту если задать формат %MW_Bit и адрес 62200.1 сейчас буду пробовать обратится и скады
Сообщение отредактировал All_Ex81 - 15.4.2013, 7:55
|
|
|
|
|
15.4.2013, 8:00
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Цитата(All_Ex81 @ 15.4.2013, 7:48)  relocation table начинает адресацию modbus с адреса %MW62200, из панели получилось обратится к биту если задать формат %MW_Bit и адрес 62200.1 ...это сложнее, помогут только скрипты
|
|
|
|
|
8.4.2014, 11:03
|
Группа: Участники форума
Сообщений: 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
Последние сообщения Форума
|