PDA

Просмотр полной версии : СП307 мастер + ПЛК63 slave, область ввода-вывода, регистры



leonVl
17.11.2016, 12:54
Доброго времени суток Господа!

Первый раз столкнулся с необходимостью использовать связку ПЛК63 slave и СП307 master

Не бросайте помидорами, форум читал, инструкцию перерыл но так и не смог решить вопрос.
Каким образом и через какие регистры прочитать панелью переменную типа Int с ПЛК63 и как записать?
Пытаюсь через регистры с 332 в ПЛК и ничего!

Очень прошу, помогите разобраться, Обьект завис...
с передачей - приемом float (real) через регистры 82-286 разобрался, ставим регистры через 8 шт. и читаем-передаем преобразуя в ПЛК.

ПОЖАЛУЙСТА, посмотрите вложенные проекты, как настроить передачу - прием переменных, по каким регистрам, какими функциями?
27644
27645

petera
17.11.2016, 14:03
Доброго времени суток Господа!

Первый раз столкнулся с необходимостью использовать связку ПЛК63 slave и СП307 master

Не бросайте помидорами, форум читал, инструкцию перерыл но так и не смог решить вопрос.
Каким образом и через какие регистры прочитать панелью переменную типа Int с ПЛК63 и как записать?
Пытаюсь через регистры с 332 в ПЛК и ничего!

Очень прошу, помогите разобраться, Обьект завис...
с передачей - приемом float (real) через регистры 82-286 разобрался, ставим регистры через 8 шт. и читаем-передаем преобразуя в ПЛК.

ПОЖАЛУЙСТА, посмотрите вложенные проекты, как настроить передачу - прием переменных, по каким регистрам, какими функциями?
27644
27645

Я так думаю, что дело в том, что панель для этих дисплеев флрмирует групповой запрос к слейву ПЛК http://www.owen.ru/forum/showthread.php?t=14132&p=139313&viewfull=1#post139313

Чтение будет осуществляться группой если адреса регистров отличаются не более чем на 5, например
- для двух дисплеев с регистрами Wrd 4х00 и 4х5 будет одна команда чтения шести регистров 0,1,2,3,4,5. А для двух дисплеев с регистрами Wrd 4х00 и 4х6 будут две отдельные команды чтения по одному регистру.
- для двух дисплеев с регистрами DWrd 4х00 и 4х6 будет одна команда чтения восьми регистров 0,1,2,3,4,5,6,7. А для двух дисплеев с регистрами DWrd 4х00 и 4х8 будут две отдельные команды чтения по два регистра.
А это для ПЛК63 недопустимо
27653
Т.е. доступ к переменным в конфигурации возможен только через одиночные запросы, а не групповые.
По этому
или сделать разницу между адресами регистров больше 5, например 4х332 и 4х338
или использовать в панели адреса из области копии регистров слейва, т.е 4096.
или в панели использовать для адресов регистров динамическую адресацию
27657
здесь в индексном регистре, например, PSW256 обязательно должен быть 0.

petera
17.11.2016, 14:21
ЗЫ.

с передачей - приемом float (real) через регистры 82-286 разобрался, ставим регистры через 8 шт. и читаем-передаем преобразуя в ПЛК.
через 8 шт. -подтверждает мои соображения.
Кстати, а зачем "преобразуя" в ПЛК?
Может проще включить нужную "галку"?
27665

leonVl
17.11.2016, 15:41
ЗЫ.
Кстати, а зачем "преобразуя" в ПЛК?
Может проще включить нужную "галку"?
27665
Использовал пример с форума...
Вообще, 73 и 63 как то странно связывается по МодБас, с другими контроллерами такого не замечал. То есть простая галка тут не подходит, СП просто не видит регистр хоть убей, или показывает 0.
Полагаю без танцев "с бубном" с целыми числами не получится как впрочем и с real

leonVl
17.11.2016, 15:44
Спасибо petera за участие, может еще у кого есть рабочий пример, любой, в котором Панель мастер и панель читает и записывает в ПЛК целые числа (регистры с 332)?

leonVl
17.11.2016, 15:52
Использовал пример с форума...
Вообще, 73 и 63 как то странно связывается по МодБас, с другими контроллерами такого не замечал. То есть простая галка тут не подходит, СП просто не видит регистр хоть убей, или показывает 0.
Полагаю без танцев "с бубном" с целыми числами не получится как впрочем и с real

Вот этот http://www.owen.ru/forum/showthread.php?t=13581&highlight=%CF%CB%CA63+slave
пример использовал для связи вещественных чисел. Но таких чисел в ПЛК 63 очень мало можно использовать в области ввода-вывода так как каждое число забирает 8 регистров

Пример опроса/записи переменных типа Real и Bool панелью СП270 (Master) из/в ПЛК63.
Скачать (60 Кб)

Crusash
17.11.2016, 20:47
Спасибо petera за участие, может еще у кого есть рабочий пример, любой, в котором Панель мастер и панель читает и записывает в ПЛК целые числа (регистры с 332)?

Панель Weintek MT8050iE и ПЛК63. Вроде проблем не помню..

melky
18.11.2016, 08:52
ПЛК63 можно читать групповым запросом, только надо обращаться не к назначеным адресам в ПЛК а к системной области копии.
Писать только по созданному адресу.

я где-то тут табличку выкладывал, когда прикручивал к SCADA ПЛК63

petera
18.11.2016, 09:31
Спасибо petera за участие, может еще у кого есть рабочий пример, любой, в котором Панель мастер и панель читает и записывает в ПЛК целые числа (регистры с 332)?

Пожалуйста!
Но Вы наверно не хотите вникать в

По этому
или сделать разницу между адресами регистров больше 5, например 4х332 и 4х338
или использовать в панели адреса из области копии регистров слейва, т.е 4096.
или в панели использовать для адресов регистров динамическую адресацию
По крайней мере Вы ничего не говорите о результатах.
Про галку "Переставить WORD в Float".
Естественно она относится только к Float и DWord.

Для начала оставьте всего один дисплей на экране и сообщите, что получилось.

leonVl
18.11.2016, 13:52
Пожалуйста!
Но Вы наверно не хотите вникать в

По крайней мере Вы ничего не говорите о результатах.
Про галку "Переставить WORD в Float".
Естественно она относится только к Float и DWord.

Для начала оставьте всего один дисплей на экране и сообщите, что получилось.

Очень хочу вникнуть, просто панель и контроллер на обьекте, до него нужно доехать. Пришлось сегодня купить еще одну панель, в офисе "прикручу" ее к ПЛК73 (он есть в наличии) и буду проверять все варианты.

Кстати скажите, то есть груповой запрос делаю и складываю все в панель с обозначенного регистра, должно получиться?

petera
18.11.2016, 14:42
Очень хочу вникнуть, просто панель и контроллер на обьекте, до него нужно доехать. Пришлось сегодня купить еще одну панель, в офисе "прикручу" ее к ПЛК73 (он есть в наличии) и буду проверять все варианты.

Кстати скажите, то есть груповой запрос делаю и складываю все в панель с обозначенного регистра, должно получиться?
Я имел ввиду, что панель САМА формирует групповые запросы к регистрам слейва, если адреса регистров у дисплеев на экране отличаются не более чем на 5.
ПЛК63 не позволяет читать больше одного регистра из конфигурации одной командой. А в Вашем случае на экране два дисплея с 332 и 334 регистрами. Автоматически будет сформирован групповой запрос на чтение трех регистров 332, 333, 334.
Групповой опрос возможен только из копии области ввода вывода.
Адресацию регистров в этой копии см. картинку от мелкого http://www.owen.ru/forum/showthread.php?t=22485&p=184694&viewfull=1#post184694
Но регистры в копии ввода вывода доступны только для чтения!
По этому в элементах ввода нужно разделить регистры для чтения и записи
27674

Еще есть информация, что если читать переменные в конфигурации (по одной), то http://www.owen.ru/forum/showthread.php?t=22795&p=189216&viewfull=1#post189216

Тип переменных в конфигурации ПЛК63 для их опроса по RS должен быть "оперативный", иначе ПЛК63 будет выдавать нулевые значения опрашиваемых переменных, не зависимо от того, какие там значения в действительности.
а для ПЛК с прошивкой 2.12 другая инфа http://www.owen.ru/forum/showthread.php?t=22795&p=191132&viewfull=1#post191132

Прошивка 2.12.
Значения конфигурационных переменных передаются по RS корректно. Значение по умолчанию не перекрывает текущее значение.
Но есть следующая особенность - если изменять значение конфигурационной переменной при отладке из кодесис, а не с лицевой панели, то новое, измененное значение, несмотря на его изменение в кодесис (в конфигурации ПЛК в кодесис будет новое значение), не отображается ни на экране ПЛК, ни по RS, т.е. на экране контроллера и по RS будет видно предыдущее значение.

leonVl
19.11.2016, 07:21
Я имел ввиду, что панель САМА формирует групповые запросы к регистрам слейва, если адреса регистров у дисплеев на экране отличаются не более чем на 5.
ПЛК63 не позволяет читать больше одного регистра из конфигурации одной командой. А в Вашем случае на экране два дисплея с 332 и 334 регистрами. Автоматически будет сформирован групповой запрос на чтение трех регистров 332, 333, 334.
Групповой опрос возможен только из копии области ввода вывода.
Адресацию регистров в этой копии см. картинку от мелкого http://www.owen.ru/forum/showthread.php?t=22485&p=184694&viewfull=1#post184694
Но регистры в копии ввода вывода доступны только для чтения!
По этому в элементах ввода нужно разделить регистры для чтения и записи
27674

Еще есть информация, что если читать переменные в конфигурации (по одной), то http://www.owen.ru/forum/showthread.php?t=22795&p=189216&viewfull=1#post189216

а для ПЛК с прошивкой 2.12 другая инфа http://www.owen.ru/forum/showthread.php?t=22795&p=191132&viewfull=1#post191132

Petera! Вы не поверите как Вы мне помогли! И картинка "Мелкого" то же.
Огромное СПАСИБО!
Разобрался немного, итак, для тех кто только начинает разбираться с регистрами ПЛК 63\73 в режиме "Слейв" и панелью в режиме "Мастер":

Значения на аналоговых входах можно читать в панель с регистра 24 с шагом 2 - 24,26,28 и.т.д. При этом, в настройках панели нужно поставить галку "Переставлять Word - Float", использовать формат чтения DWord и формат дисплея float

В регистры ПЛК типа Float с регистра 90 по регистр 274 (шаг регистров 8, то есть 90, 98, 106 и.т.д.) можно писать и читать панелью без всяких преобразований в ПЛК дисплеем (числовым вводом) с типом чтения dword, типом данных Float.

Регистры ПЛК с данными UINT (с рег 352 по рег 508 с шагом 4 - 352,360,368 и.т.д.) можно читать групповым запросом с регистра 4224, 37 чтений, полученные регистры с ПЛК будут в регистрах панели подряд.

В случае если нужно читать или писать регистры с данными Uint в ПЛК то используем дисплей или числовой ввод в формате DEC с типом чтения Word/ при этом обращаемся напрямую к регистрам 352,360 и.т.д.

ВНИМАНИЕ! Во всех перечисленных случаях, как и обьяснял Petera нужно на всех дисплеях и вводах ставить галку переадресация на какой либо регистр с "нулем", иначе ничего не получится.

Завтра сделаю проект со всеми регистрами в ПЛК и примером чтения- записи. Можно будет выложить в "Примеры"

petera
19.11.2016, 13:50
В регистры ПЛК типа Float с регистра 90 по регистр 274 (шаг регистров 8, то есть 90, 98, 106 и.т.д.) можно писать и читать панелью без всяких преобразований в ПЛК дисплеем (числовым вводом) с типом чтения dword, типом данных Float.

Регистры ПЛК с данными UINT (с рег 352 по рег 508 с шагом 4 - 352,360,368 и.т.д.) можно читать групповым запросом с регистра 4224, 37 чтений, полученные регистры с ПЛК будут в регистрах панели подряд.

В случае если нужно читать или писать регистры с данными Uint в ПЛК то используем дисплей или числовой ввод в формате DEC с типом чтения Word/ при этом обращаемся напрямую к регистрам 352,360 и.т.д.

ВНИМАНИЕ! Во всех перечисленных случаях, как и обьяснял Petera нужно на всех дисплеях и вводах ставить галку переадресация на какой либо регистр с "нулем", иначе ничего не получится.


Если использовать переадресацию

ВНИМАНИЕ! Во всех перечисленных случаях, как и обьяснял Petera нужно на всех дисплеях и вводах ставить галку переадресация на какой либо регистр с "нулем", иначе ничего не получится.
то зачем для Float шаг 8 и для UINT шаг 4? В этом случае можно для Float шаг 2 и для UINT шаг 1.
А если переадресацию не использовать, тогда для Float оставить шаг 8, а для UINT увеличить шаг до 6.

burov-vyazma
20.02.2020, 12:13
Приветствую, господа и дамы!Вроде, с регистрами понимание приходит:спасибо всем, кто помог. Теперь хочу еще озадачить знатоков.Есть та же СП307(Master), ПЛК63 и МЭ110.Мне нужно прочитать панелью показания с МЭ110 и передать их в ПЛК63 для дальнейших действий.Я понимаю,что напрямую ПЛК не сможет опросить МЭ, поскольку оба Slave.Подскажите, пожалуйста, прав ли я, и как мне поступить.СПАСИБО!

melky
20.02.2020, 12:33
Напрямую ПЛК может опросить только через библиотеки. Но тогда наверное все надо перевести на библиотеки.

petera
20.02.2020, 12:48
Приветствую, господа и дамы!Вроде, с регистрами понимание приходит:спасибо всем, кто помог. Теперь хочу еще озадачить знатоков.Есть та же СП307(Master), ПЛК63 и МЭ110.Мне нужно прочитать панелью показания с МЭ110 и передать их в ПЛК63 для дальнейших действий.Я понимаю,что напрямую ПЛК не сможет опросить МЭ, поскольку оба Slave.Подскажите, пожалуйста, прав ли я, и как мне поступить.СПАСИБО!

СП307 - мастер, ПЛК63 и МЭ110 слейвы
Панель читает значения из регистров МЭ110 и пишет эти значения в соответствующие регистры ПЛК63

Использовать ф.область с режимом "Непрерывно" и функции "Копировать регистр"
47479

47480

Ф.область д.б. "Глобальной"

burov-vyazma
20.02.2020, 16:00
СП307 - мастер, ПЛК63 и МЭ110 слейвы
Панель читает значения из регистров МЭ110 и пишет эти значения в соответствующие регистры ПЛК63

Использовать ф.область с режимом "Непрерывно" и функции "Копировать регистр"
47479

47480

Ф.область д.б. "Глобальной"

СПАСИБИЩЕ ОГРОМНОЕ!Как всегда, Вы можете разъяснить всё очень наглядно и доходчиво!Буду пробовать.

burov-vyazma
20.02.2020, 16:02
Напрямую ПЛК может опросить только через библиотеки. Но тогда наверное все надо перевести на библиотеки.

А Вам спасибо за таблицу соответствия регистров!Повесил(таблицу) перед глазами.

burov-vyazma
16.04.2020, 09:13
СПАСИБИЩЕ ОГРОМНОЕ!Как всегда, Вы можете разъяснить всё очень наглядно и доходчиво!Буду пробовать.

Здравствуйте!Ещё раз благодарю за совет про функциональную область!Теперь появилась проблема:не могу произвести в ПЛК никаких действий с данными от МЭ-110-224-1Т.Показания с множителем "е-039" и CoDeSys не хочет никаких действий с этими цифрами производить.Хотя на СП307 я вывел цифровой дисплей для чтения того же регистра МЭ110 и показания там адекватные "0,23".Для физических аналоговых входов ПЛК63 есть настройка типа датчика, где такие значения преобразовываются в нормальные, а в виртуальных входах такой настройки нет.Подскажите, пожалуйста, как быть?48470[/ATTACH[ATTACH=CONFIG]48471

petera
16.04.2020, 10:32
Здравствуйте!Ещё раз благодарю за совет про функциональную область!Теперь появилась проблема:не могу произвести в ПЛК никаких действий с данными от МЭ-110-224-1Т.Показания с множителем "е-039" и CoDeSys не хочет никаких действий с этими цифрами производить.Хотя на СП307 я вывел цифровой дисплей для чтения того же регистра МЭ110 и показания там адекватные "0,23".Для физических аналоговых входов ПЛК63 есть настройка типа датчика, где такие значения преобразовываются в нормальные, а в виртуальных входах такой настройки нет.Подскажите, пожалуйста, как быть?48470[/ATTACH[ATTACH=CONFIG]48471
Регистр 22 в МЭ110 содержит ЦЕЛОЕ значение, не Float!
48473
По этому в ПЛК в переменной Float будет полная бессмыслица

Либо в ПЛК замените тип переменной на IntP и в ф.области используйте Word
либо читайте из МЭ110 регистр 29 - "Измеренное значение тока по входу 1 с плавающей точкой"

burov-vyazma
16.04.2020, 10:39
Я пробовал читать регистр 29 из Мэ110, так там цифры бешено скачут от "е-039" до "е+039" при неизменной нагрузке.А если читаю регистр 22 как intP при токе 0,23 значение "0".Попробую ещё раз, следуя Вашему совету:может получится.СПАСИБО!

petera
16.04.2020, 10:41
Я пробовал читать регистр 29 из Мэ110, так там цифры бешено скачут от "е-039" до "е+039" при неизменной нагрузке.А если читаю регистр 22 как intP при токе 0,23 значение "0".Попробую ещё раз, следуя Вашему совету:может получится.СПАСИБО!

Скачут - включите галку "Переставить WORD" в настройках порта панели
Показания скачут от "е-039" до "е+039" т.к. мантисса перепутана с порядком
48475

ЗЫ. Про галку https://owen.ru/forum/showthread.php?t=25581&p=227802&viewfull=1#post227802

burov-vyazma
16.04.2020, 16:32
Скачут - включите галку "Переставить WORD" в настройках порта панели
Показания скачут от "е-039" до "е+039" т.к. мантисса перепутана с порядком
48475

ЗЫ. Про галку https://owen.ru/forum/showthread.php?t=25581&p=227802&viewfull=1#post227802

Мне про перепутанные байты и инженер техподдержки сказал,но я же копирую из регистра в регистр: разве там можно байтовый порядок поменять?4849148492

burov-vyazma
16.04.2020, 18:41
Валенок, я могу понять Ваши терки с овеном по поводу не соответствия заявленных характеристик, но почему вы дебилам даете шенс уверовать что у них есть шансы в своей правоте, для меня это за гранью

Если сей комплимент в мой адрес,спорить не стану.Хотя в анамнезе моём,кроме гиперметропии (дальнозоркости),других душевных недугов и не значится,критику приму,ибо "достал"всех.Попытаюсь приложить проекты и ,если кто-нибудь сочтет возможным указать на ошибки,"торните носом",ПОЖАЛУЙСТА!
ЗЫ.Не ошибается тот, кто ничего не делает.
484944849448495

melky
16.04.2020, 19:36
насколько помню, порядок байт для float и у ПЛК63 такой же, как и у ПЛК100 и других Овен. = 2301, то есть старшим регистром вперед.

melky
16.04.2020, 23:06
Валенок да, вы правы, посмотрел свой старый шаблон для 63-его, byteOrder не выставлен ни на одной из переменных, значит 1:1, то есть 0123

на ПР200 - 2301 стоит. на ПЛК100 тоже ставил 2301

burov-vyazma
17.04.2020, 15:42
Я наверно что-то пропустил и не знаю где Наши ))

Для Вяземских (у меня новодугинские корни если что, по узкоколеечке катался)
Овена-зоопарк, порядок байт :
Все плк, сп3хх - норм литл-энд 1,2,3,4
Всё остальное (все модули, ип320) - хрен пойми накой 3,4,1,2 причем только для дабл-словных

Пересылка из сп300 в плк63 1:1, но т.к. панель и из модуля читает 1:1 получается фигня. Да и на ней фигня если выводить.
1.сп300. Настройки параметров связи - ставим галку "изменить порядок регистров" (см. выше - petera уже сказал)
2.Плк 63. Оставляем как есть
3.Если на 1 экране панели справа от пепелаца выводить флоат : 22=>29, unsigned=>float. Ход правильный, не нужно будет парится с узнаванием "а скока точек после запятой в самом модуле".
Да и 0 видели заместо 0.23 т.к. в [22]=0, [23]=23



подвела память-то ))

Спасибо,земляк!Вот мне так и нужно как "дебилу" пошагово объяснять.Очень жалею,что лет 5 назад не начал этим заниматься,пока молодой был,хотя,учиться никогда не поздно.Вам,Petera и всем неравнодушным-сердечная благодарность.О результатах отчитаюсь.

burov-vyazma
10.09.2020, 10:33
Доброго времени суток ,коллеги!Ещё раз благодарю всех ,кто помогал мне ранее :очень помогли!
Теперь мне нужно сделать счетчик импульсов с сохранением результата в энергонезависимой памяти ПЛК и выводить результат на СП307.Я сделал на CTU:импульсы считает ,но при сбросе питания обнуляется.Может мне сделать выход с CTU retain?Подтолкните,пожалуйста в верном направлении.А ещё про блок RTC хочу спросить :если ему на вход подать TRUE ,он не обнулится при сбросе питания?_