EasyBuilder - Скорая помощь новичкам

Работа с панелями оператора Weintek - подключение, программирование, совмещение с ПЛК

Модераторы: kiv, 8bit, VanMo

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Number17 » 07 апр 2023, 12:41

8bit писал(а):
Number17 писал(а):Вопрос 1: МАС содержит 6 байт, почему старшая половина слова не равна 0?
почему должна быть равна 0 ?

Полагаю что потому, что в слове должно содержаться значение не более 255, т.е. значащими должны быть только младшие 8мь разрядов. Но старшая половина может быть !=0, но при этом быть незначащей.
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

Re: EasyBuilder - Скорая помощь новичкам

Сообщение 8bit » 07 апр 2023, 15:08

Number17 писал(а):Полагаю что потому, что в слове должно содержаться значение не более 255


с чего бы это ?
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Number17 » 07 апр 2023, 15:58

8bit писал(а):
Number17 писал(а):Полагаю что потому, что в слове должно содержаться значение не более 255


с чего бы это ?


Стандарты IEEE определяют 48-разрядный (6 октетов( байт) ) MAC-адрес. Полагаю в каждой из ячеек (9135-9140) содержится один октет из 6-ти.
Или как то не так?
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

Re: EasyBuilder - Скорая помощь новичкам

Сообщение 8bit » 07 апр 2023, 16:03

Number17 писал(а):Полагаю в каждой из ячеек (9135-9140) содержится один октет из 6-ти.


верно
а что содержит этот октет ?
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Number17 » 07 апр 2023, 16:07

8bit писал(а):
Number17 писал(а):Полагаю в каждой из ячеек (9135-9140) содержится один октет из 6-ти.


верно
а что содержит этот октет ?


Значение от 0x00 до 0xFF должно быть ). Не так ?
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

Re: EasyBuilder - Скорая помощь новичкам

Сообщение 8bit » 10 апр 2023, 11:14

Number17 писал(а):
8bit писал(а):
Number17 писал(а):Полагаю в каждой из ячеек (9135-9140) содержится один октет из 6-ти.


верно
а что содержит этот октет ?


Значение от 0x00 до 0xFF должно быть ). Не так ?


Weintek хранит MAC адрес как символы и отображать его надо через объект ASCII
Хороший вопрос содержит половину ответа - A good question contains half the answer
Аватара пользователя
8bit
 
Сообщения: 1108
Зарегистрирован: 20 апр 2020, 19:07

Re: EasyBuilder - Скорая помощь новичкам

Сообщение Number17 » 11 апр 2023, 10:09

8bit писал(а):
Number17 писал(а):Weintek хранит MAC адрес как символы и отображать его надо через объект ASCII


Ну вот теперь всё понятно ). Спасибо.
Number17
 
Сообщения: 152
Зарегистрирован: 06 мар 2018, 12:08

Re: EasyBuilder - Скорая помощь новичкам

Сообщение smile-dimon » 18 апр 2023, 13:48

доброго времени всем!
Бьюсь,бьюсь с прошивкой,вернее со составлением макроса...с помощью примеров и гугла кое что удалось,но не могу понять:
Код: Выделить всё
GetData (nn[0], "RTU1", 4x_Bit, 1#102, 1)
GetData (nn[1], "RTU1", 4x_Bit, 2#102, 1)
GetData (nn[2], "RTU1", 4x_Bit, 3#102, 1)
GetData (nn[3], "RTU1", 4x_Bit, 4#100, 1)
GetData (nn[4], "RTU1", 4x_Bit, 5#100, 1)
GetData (nn[5], "RTU1", 4x_Bit, 6#100, 1)
GetData (nn[6], "RTU1", 4x_Bit, 7#102, 1)
GetData (nn[7], "RTU1", 4x_Bit, 8#102, 1)
GetData (nn[8], "RTU1", 4x_Bit, 9#102, 1)
GetData (nn[9], "RTU1", 4x_Bit, 10#102, 1)
GetData (nn[10], "RTU1", 4x_Bit, 11#102, 1)
GetData (nn[11], "RTU1", 4x_Bit, 12#102, 1)
GetData (nn[12], "RTU1", 4x_Bit, 13#102, 1)
GetData (nn[13], "RTU1", 4x_Bit, 14#102, 1)

for n=0 to 14 step 1

if nn[n]==true then
SetData(on, "Local HMI", LB, 100, 1)
//else
if nn[n]==false then
SetData(off, "Local HMI", LB, 100, 1)
end if
end if
next n

по этому коду,выходит что пока каждый бит не сработает не будет установлен положительный бит?
Или я что не правильно делаю?Пишу как бы шаблон...но на объектах кол-во устройств варьируется от 5 до 15 и мне нужно что бы с минимальными изменениями(а лучше без них,потому что прошиваются большинство удаленно) работало на всех.В идеале бы конечно что бы большинство приборов проверялось на сработку и тем самым LB-100 переходил в true(...кол-во конечно могу подогнать к каждому объекту).А если нет,то соответственно в false.И не могу понять,они для выполнения условия должны быть всегда и все в сработке или же это за все время работы панели?Макрос стоит в периодическом выполнении.
smile-dimon
 
Сообщения: 14
Зарегистрирован: 01 окт 2020, 20:15

Re: EasyBuilder - Скорая помощь новичкам

Сообщение dimensy » 18 апр 2023, 15:21

smile-dimon писал(а):доброго времени всем!
Бьюсь,бьюсь с прошивкой,вернее со составлением макроса...с помощью примеров и гугла кое что удалось,но не могу понять:
Код: Выделить всё
GetData (nn[0], "RTU1", 4x_Bit, 1#102, 1)
GetData (nn[1], "RTU1", 4x_Bit, 2#102, 1)
GetData (nn[2], "RTU1", 4x_Bit, 3#102, 1)
GetData (nn[3], "RTU1", 4x_Bit, 4#100, 1)
GetData (nn[4], "RTU1", 4x_Bit, 5#100, 1)
GetData (nn[5], "RTU1", 4x_Bit, 6#100, 1)
GetData (nn[6], "RTU1", 4x_Bit, 7#102, 1)
GetData (nn[7], "RTU1", 4x_Bit, 8#102, 1)
GetData (nn[8], "RTU1", 4x_Bit, 9#102, 1)
GetData (nn[9], "RTU1", 4x_Bit, 10#102, 1)
GetData (nn[10], "RTU1", 4x_Bit, 11#102, 1)
GetData (nn[11], "RTU1", 4x_Bit, 12#102, 1)
GetData (nn[12], "RTU1", 4x_Bit, 13#102, 1)
GetData (nn[13], "RTU1", 4x_Bit, 14#102, 1)

for n=0 to 14 step 1

if nn[n]==true then
SetData(on, "Local HMI", LB, 100, 1)
//else
if nn[n]==false then
SetData(off, "Local HMI", LB, 100, 1)
end if
end if
next n

по этому коду,выходит что пока каждый бит не сработает не будет установлен положительный бит?
Или я что не правильно делаю?Пишу как бы шаблон...но на объектах кол-во устройств варьируется от 5 до 15 и мне нужно что бы с минимальными изменениями(а лучше без них,потому что прошиваются большинство удаленно) работало на всех.В идеале бы конечно что бы большинство приборов проверялось на сработку и тем самым LB-100 переходил в true(...кол-во конечно могу подогнать к каждому объекту).А если нет,то соответственно в false.И не могу понять,они для выполнения условия должны быть всегда и все в сработке или же это за все время работы панели?Макрос стоит в периодическом выполнении.


1. Побитово читать из регистра не очень хорошая идея. Правильней будет прочитать весь регистр, а потом, при необходимости работать с битами
2. Не знаю, но вроде запись при чтении 2#100 неверна. Если это второй бит регистра 100, то должно быть 10002
3. По коду у вас LB-100 выставится в 1 при любом одном положительном бите и обратно уже не сбросится
И скорректируйте вопрос, пожалуйста, я нифига не понял что значит "В идеале бы конечно что бы большинство приборов проверялось на сработку и тем самым LB-100 переходил в true(...кол-во конечно могу подогнать к каждому объекту)"
dimensy
 
Сообщения: 143
Зарегистрирован: 14 мар 2018, 17:54

Re: EasyBuilder - Скорая помощь новичкам

Сообщение smile-dimon » 18 апр 2023, 16:19

1. Побитово читать из регистра не очень хорошая идея. Правильней будет прочитать весь регистр, а потом, при необходимости работать с битами
2. Не знаю, но вроде запись при чтении 2#100 неверна. Если это второй бит регистра 100, то должно быть 10002
3. По коду у вас LB-100 выставится в 1 при любом одном положительном бите и обратно уже не сбросится
И скорректируйте вопрос, пожалуйста, я нифига не понял что значит "В идеале бы конечно что бы большинство приборов проверялось на сработку и тем самым LB-100 переходил в true(...кол-во конечно могу подогнать к каждому объекту)"


да,это я не внимателен,2#100 это моя ошибка.Все биты идут по первому (102) регистру,вернее сказать на 001 регистре есть три состояния- 00100-сост.прибора,00101-первый порог и 00102-второй порог.До решетки это локальные модбас адреса приборов 1-14.
Попробую перефразировать:В определенный момент времени, по задумке, оператор должен выполнить ТО приборов. При ТО естественно должно произойти срабатывание порогов,т.е. при сработке 2го порога всех приборов у оператора появляется кнопка с откладыванием ТО приборов на определенное время,до следующего периода.Если я там прописываю 'else',то кнопка появляется и снова пропадает.А мне необходимо что бы оператор провел ТО всем приборам и нажал кнопку,при этом дата следующего ТО сдвинулась. Кроме того некоторые приборы могут отсутствовать,в ремонте или неисправны.
Как то так,вроде описал.
smile-dimon
 
Сообщения: 14
Зарегистрирован: 01 окт 2020, 20:15

Пред.След.

Вернуться в Weintek

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 10