PDA

Просмотр полной версии : Язык LD в CoDeSys и Modbus



Roke_Alva
29.01.2015, 08:14
Здравствуйте. Имеется панель оператора СП270 и ПЛК ОВЕН 160. Я только начинаю разбираться в протоколе Modbus и возникла такая ситуация. Написал простую программу на языке LD, в которой по нажатию кнопки SB1 у меня включается устройство, назовём его КМ1. Хочу сделать так чтобы на панели СП 270 отображалась кнопка и сигнализация о включении КМ1 (соответствующий интерфейс уже залит мною в панель). В конфигурации ПЛК прописал вход SB1 и выход КМ1. Добавил подэлемент Modbus (slave). В нём выбрал соединение по RS-485 и добавил подэлемент 8bit, в котором прописал регистры S1 (для кнопки SB1) и К1 (для КМ1). Вопрос заключается в том как приравнять S1 с SB1 и К1 с КМ1 в языке LD?
Может я чего-то не понимаю и не так всё делаю, подскажите пожалуйста, очень хочется разобраться.

Yegor
29.01.2015, 09:47
как приравнять S1 с SB1 и К1 с КМ1Просто лишние лесенки сделайте с катушкой и контактом и подпишите. Катушка — куда приравнять, контакт — что приравнять.

Roke_Alva
29.01.2015, 10:03
Спасибо :)

Roke_Alva
02.02.2015, 07:46
Ещё возник вопрос. Необходимо выдавать на панель оператора значения от 0 до 100 с потенциометра (0-10 В). В конфигурации настроил вход. Написал простую программу на CFC. Добавил в modbus подэлемент float. Но почему то на панели отображаются значения от -240 до 150 или около того. С чем это может быть связано?
И ещё хотелось бы уточнить. После подэлемента float если добавить 8 bit. Как правильно будут выглядеть в этом случаи адресса регистров? float - 0, а 8 bit - 2, 3, 4 и т.д.? Просто перепробовал кучу вариантов и так и сяк, но правильно удаётся отобразить на панели 8 bit, а float никак не хочет показывать цифры.

Василий Кашуба
02.02.2015, 09:23
Ещё возник вопрос. Необходимо выдавать на панель оператора значения от 0 до 100 с потенциометра (0-10 В). В конфигурации настроил вход. Написал простую программу на CFC. Добавил в modbus подэлемент float. Но почему то на панели отображаются значения от -240 до 150 или около того. С чем это может быть связано?
И ещё хотелось бы уточнить. После подэлемента float если добавить 8 bit. Как правильно будут выглядеть в этом случаи адресса регистров? float - 0, а 8 bit - 2, 3, 4 и т.д.? Просто перепробовал кучу вариантов и так и сяк, но правильно удаётся отобразить на панели 8 bit, а float никак не хочет показывать цифры.
Сначала определитесь сколько у вас каких переменных будет передаваться на панель, а потом задавайте сначала битовые, потом байтовые и так далее.

Валенок
02.02.2015, 10:52
А какая разница - в каком порядке ?


После подэлемента float если добавить 8 bit. Как правильно будут выглядеть в этом случаи адресса регистров? float - 0, а 8 bit - 2, 3, 4 и т.д.?
float -0, 8bit - 2,2,3,3,4,4.. Регистр - 2 байта.


а float никак не хочет показывать цифры.
управление|данные тип - dword
вид|формат - float

Roke_Alva
10.02.2015, 07:52
Всё равно не получается. Посмотрите пожалуйста на вложения. Не пойму где ошибка?

petera
10.02.2015, 12:53
А все почему? Да по тому, что раздел для Ваших вопросов выбрали не тот. При чем здесь помощь разработчикам?
Почитали бы тему "СП для чайников" http://www.owen.ru/forum/showthread.php?t=8604 и другие темы в разделе "Средства отображения" http://www.owen.ru/forum/forumdisplay.php?f=23 может и прояснилось бы:rolleyes:
А теперь по существу.
1.Вот скажите, а зачем Вы порт Download в своем проекте задействовали? Нужны дополнительные проблемы?
16675

2.Для того, что бы правильно принимать из ПЛК Float, нужно включить галку "Поменять Word" http://www.owen.ru/forum/showthread.php?t=4044&p=96807&viewfull=1#post96807
16676
И зачем Вам задержка ответа панели 10мс? Для искусственных тормозов? Оставьте 0.
Почему адрес регистра у дисплея 4х0?
16678
Смотрим конфигурацию ПЛК
16677
Адрес регистра для переменной "re" не 0, а 2.
http://www.owen.ru/forum/attachment.php?attachmentid=12345&d=1395648726
ЗЫ. Повезло Вам, что я случайно сюда забрел.

petera
10.02.2015, 13:15
Посмотрел Ваши программы для ПЛК.
Значения "на панель оператора значения от 0 до 100 с потенциометра (0-10 В)" не попадут ни когда:rolleyes:
16680
Почувствуйте разницу между глобальными и локальными переменными. Из-за того, что они имеют одинаковые имена совершенно не означает, что они одно и тоже.

ЗЫ. Это Вам еще раз повезло:rolleyes:

Roke_Alva
11.02.2015, 08:31
Спасибо БОЛЬШОЕ!!! :rolleyes: