Сеть контроллеров Modicon M340, не знаю как обьеденить в сеть |
|
|
|
Гость_driller_*
|
7.10.2010, 10:53
|
Guest Forum

|
PLCNET1.jpg ( 77,04 килобайт )
Кол-во скачиваний: 78Здравия желаю господа. На работе поставил 3 отдельностоящих ПЛС М340, которые читают и обрабатывают инфо со своих модулей. Все Плсишки работают на BMX P34 2020. На каждом контроллере заведен свой IP адрес. Все эти Р34 2020 подсоеденены к эзернету. Через эзернет я могу с компа на котором установлен юнити про подсоедениться к любому контроллеру, и видеть все данные вживую. На этом же компе стоит прога написанная мною на Дельфи, которая подсоединяется ко всем трем контроллерам читает состояние I/O и выводит на экран. Растояние между ПЛСшками около 50 метров, а очень часто нужно что бы вывод на третьем контроллере зависил от статуса вводов на первом и на втором. простой пример думаю будет выглядеть так: PLC 1 Input 1 __ PLC 2 Input 5 ___ PLC 3 Input 3 ___ PLC 3 Output 1 ----| |---------------------| |------------------------| |----------------( )-------------- Так вот, столько я не пытался понять как это можно сделать, ничего не добился сам. Поэтому и решил задать тут вопрос. Что мне надо сделать в программе Unity Pro XL v3, для того что бы научить ПЛСишку 3 читать определенные входы-выходы с ПЛсишек 1 и 2, и наоборот. Помогите практическим советом пжалуйста, или дайте ссылки на хороший мануал (англ, руск). Спасибо заранее.
Сообщение отредактировал driller - 7.10.2010, 10:56
|
|
|
|
|
|
|
 |
Ответов
(1 - 26)
|
|
7.10.2010, 11:03
|
Группа: Участники форума
Сообщений: 83
Регистрация: 25.7.2005
Пользователь №: 1005

|
У вас программа UNITY (делфи) выполняет функцию MASTER, а контроллеры SLAVE
назначьте 3 контроллер MASTER-ом для опроса 1 и 2
|
|
|
|
|
|
|
|
7.10.2010, 11:11
|
Группа: Участники форума
Сообщений: 1337
Регистрация: 24.5.2010
Из: Москва
Пользователь №: 58149

|
|
|
|
|
|
|
|
Гость_driller_*
|
7.10.2010, 11:15
|
Guest Forum

|
Евгений, Цитата У вас программа UNITY (делфи) выполняет функцию MASTER, а контроллеры SLAVE
назначьте 3 контроллер MASTER-ом для опроса 1 и 2 а как это сделать то ? что то я не могу найти как пересести статус хозяин-раб. Rus75, спасибо ща покопаюсь
|
|
|
|
|
|
|
|
7.10.2010, 13:13
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
В Modbus TCP/IP нет разделения на Master и Slave, есть разделения на Клиент и Сервер. Любой из ПЛК может одновременно быть и Modbus TCP/IP Client и Server. Для реализации клиентских запросов через проц нужно пользоваться функциями READ_VAR и WRITE_VAR. В хелпе есть примеры для М340 на Modbus TCP/IP. Поищите. Сервера прошиты на уровне оси.
Сообщение отредактировал san - 7.10.2010, 13:14
|
|
|
|
|
|
|
Гость_driller_*
|
7.10.2010, 15:40
|
Guest Forum

|
san,
уже несколько дней я безпрерывно копаюсь в сети и в мануалах в поисках ответа на вопрос куда же мне вписать в Unity Pro в пограмме для третьей ПЛСишки этот самый READ_VAR что бы эта самая 3-я ПЛСишка через эзернет соединялась с первой ПЛСишкой и спрашивала у нее состояние входа %I0.4.6 например.
Помогите если сможете.
|
|
|
|
|
|
|
|
7.10.2010, 16:34
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

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

|
comm_ethernet.bmp ( 1,42 мегабайт )
Кол-во скачиваний: 96Вот пример. Сразу скажу что непосредственно %I считывать нельзя, только %M или %MW. На сервере нужно проделывать переприсвоение. IP-шник пропишите свой, название соединения тоже свое. А так, почитайте еще хелп по этим функциям.
|
|
|
|
|
|
|
Гость_driller_*
|
10.10.2010, 11:56
|
Guest Forum

|
san,
спасибо за помощь, процесс сдвинулся с мертвой точки. Программа в одной ПЛКшке читает %MW из другой, что в принципе радует, теперь остается задача разложить полученное число по битам, и прочитать статус именно того ввода\вывода который нужен. Заметил в библиотеке функцию WORD_To_BIT которая выдаст как я думаю статус каждого бита, только вот чтобы использовать ее, надо как то array of integer где содержится полученное число перевести в этот самый WORD.
есть мысли как это сделать наикратчайшим путем ?
Еще раз спасибо за оказанную помощь.
|
|
|
|
|
|
|
Гость_driller_*
|
10.10.2010, 12:20
|
Guest Forum

|
сделал сам, но не знаю, является ли это лучшим решением.
ANY_Array_INT функцией MAX_ARINT перевел в Integer, Integer функцией INT_TO_WORD перевел в WORD, а далее уже
WORD_TO_BIT выводит распиновку каждого бита котрому присвоена BOOL переменная. Вот по состоянию этой переменной я и считываю статус.
|
|
|
|
|
|
|
|
11.10.2010, 9:29
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Это делается просто: %MW20.14 - доступ к 14-му биту
|
|
|
|
|
|
|
Гость_driller_*
|
18.10.2010, 17:14
|
Guest Forum

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

|
Пожалуйста. Обращайтесь, если что. ;-)
|
|
|
|
|
|
|
Гость_Lowkee_*
|
13.11.2010, 14:27
|
Guest Forum

|
Вопрос появился?
Подскажите,с помощью каких моделей или с помощью какиъх средств осуществить упаковку данных? то есть чтобы биты %M101 106 111 упаковывались в слова
Подскажите пож-та?
|
|
|
|
|
|
|
|
13.11.2010, 16:42
|
Группа: Участники форума
Сообщений: 158
Регистрация: 6.4.2008
Из: Люберцы
Пользователь №: 17422

|
типо того %M101 MOV %MW1.1 %M106 MOV %MW1.2
|
|
|
|
|
|
|
|
14.11.2010, 14:58
|
Группа: New
Сообщений: 19
Регистрация: 17.9.2009
Пользователь №: 38580

|
Если элементов не много то упаковку можно произвести простым присваиванием %MW1.1:=%M101; %MW1.2:=%M106; Если битовых элементов много то можно воспользоваться встронными функциями работы с массивами битовых переменных. Что-бы сделать определенные данные с одного ПЛК доступными в сети Ethernet для других ПЛК существует также механизм Global Data. Он удобнее если у вас больше 2-х ПЛК и каждый отдает и принимает данные. Почитать как работает и посмотреть пример использования можно здесь: http://se-automation.in.ua/articles/27-tra...ady-global-data
|
|
|
|
|
|
|
Гость_Lowkee_*
|
18.11.2010, 10:52
|
Guest Forum

|
Подскажите пож-та,а что может служить ошибкой в дайнонм случае?
Адрессацию в памяти сделал... {Derived Variables} : The topological type is incompatible. : Massive2_27
|
|
|
|
|
|
|
|
18.11.2010, 21:16
|
Группа: New
Сообщений: 19
Регистрация: 17.9.2009
Пользователь №: 38580

|
Покажите скриншот из менеджера переменных этого массива Massive2_27.
|
|
|
|
|
|
|
Гость_Lowkee_*
|
19.11.2010, 13:18
|
Guest Forum

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

|
EBOOL и BOOL - это две большие разницы. EBOOL в Премиум занимает 3 бита, а в М340 - по моему 8 бит. Присваивание один другому разрешается, но не привязывание (читай локализация) булевых переменных к прямому EBOOL адресу. Вот по этому у Вас не соответствие типов. Если Вам не нужно отлавливание фронтов можете не пользоваться %M, а вместо них использовать биты из %MW.
|
|
|
|
|
|
|
Гость_Lowkee_*
|
22.11.2010, 12:36
|
Guest Forum

|
Проблема в том,что если я указываю бит через NW например MW101.1 он у меня меняет не битовую часть а часть 101 то есть 1 на 2 и т.д ,а нужно чтобы меня битовую....Посоветуйте пож-та,как поступить?
|
|
|
|
|
|
|
Гость_Lowkee_*
|
24.11.2010, 12:05
|
Guest Forum

|
Форумчане,не получается добиться от программы нужного результата,ошибок не выдает,но и результата тоже,сдавать проект в ближайшие 5 бдней. Кто мог бы посмотреть его,был бы признателен,в случае необходимости в долгу не останусь
|
|
|
|
|
|
|
Гость_Lowkee_*
|
25.11.2010, 15:28
|
Guest Forum

|
Подскажите пож-та,что может быть за ошибка,когда я подключаюсь к контроллеру,Unity пишут This isnt a valid PLC Address,or PLC is busy,or media is off
Точнее как ее решить?
|
|
|
|
|
|
|
|
5.2.2011, 21:05
|
Группа: Участники форума
Сообщений: 105
Регистрация: 5.2.2011
Пользователь №: 92810

|
Цитата(san @ 7.10.2010, 15:13)  В хелпе есть примеры для М340 на Modbus TCP/IP. Поищите. нету. только на serial port
|
|
|
|
|
|
|
|
6.2.2011, 10:14
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
Цитата(san @ 7.10.2010, 16:09) 
comm_ethernet.bmp ( 1,42 мегабайт )
Кол-во скачиваний: 96Вот пример. Сразу скажу что непосредственно %I считывать нельзя, только %M или %MW. На сервере нужно проделывать переприсвоение. IP-шник пропишите свой, название соединения тоже свое. А так, почитайте еще хелп по этим функциям. k0der , Вам это пример не помог?
|
|
|
|
|
|
|
|
6.2.2011, 12:28
|
Группа: Участники форума
Сообщений: 105
Регистрация: 5.2.2011
Пользователь №: 92810

|
Цитата(san @ 6.2.2011, 12:14)  k0der , Вам это пример не помог? к сожалению нет. посмотре одно видео. завтра на работе протестю.
|
|
|
|
|
|
|
|
6.2.2011, 12:32
|
Группа: Участники форума
Сообщений: 531
Регистрация: 10.1.2008
Из: Киев
Пользователь №: 14316

|
А что именно в нем не понятно? Это ж не видео а рисунок.
Сообщение отредактировал san - 6.2.2011, 12:34
|
|
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
Реклама: ООО «СибСтронг» | ИНН 6670013662 | ERID: 2VtzqvdgiCU
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqwWc8XB
Реклама: ООО «СЛ-ЛАЗЕР» ИНН 7727447267 | erid: 2VtzqvEDgM7
Последние сообщения Форума
|