Форум программистов, компьютерный форум, киберфорум
Контроллеры PLC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/163: Рейтинг темы: голосов - 163, средняя оценка - 4.50
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
1

Реализация протокола MODBUS TCP в Simatic Step 7

06.07.2013, 23:12. Показов 29991. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать функциональный блок, в котором будет формироваться заголовок нужного формата и при помощи стандартных функций (каких именно, без понятия) кадры будут передаваться по шине другому контроллеру, который кстати, отстутствует - вместо него надо использовать эмулятор, который будет запущен с ПК (клиентская/серверная часть - на выбор, а есть ли вообще такой?). Насчёт интерфейса передачи - тоже не знаю, что можно использовать? Вроде бы есть Industrial Ethernet, но не знаю, подходит ли он для Modbus. Собсно говоря, с чего начать? Есть какие-нибудь мануалы, исходники?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2013, 23:12
Ответы с готовыми решениями:

Аналог ПО Simatic Modbus/TCP Wizard
Добрый день! Подскажите, пожалуйста, аналог ПО Simatic Modbus/TCP Wizard для ПЛК ОВЕН

Поддерживает ли коммуникационный модуль Siemens SIMATIC CP243-1 протокол ModBus TCP?
здравствуйте. Скажите ,пожалуйста, поддерживает ли коммуникационный модуль Siemens SIMATIC CP243-1...

Реализация протокола ModBus RTU на Qt
Всем доброго время суток. Недавно начал осваивать программирование на Qt. Стоит тривиальная задача...

Реализация протокола ModBus на DE1-SoC
Работаю над реализацией протокола ModBus RTU на DE1-SoC. Собрала в Quartus II процессор Nios II с...

Реализация протокола ModBus на DE1-SoC
Работаю над реализацией протокола ModBus RTU на DE1-SoC. Собрала в Quartus II процессор Nios II с...

26
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28046 / 15779 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
06.07.2013, 23:21 2
я уж испугался что аутомейшен закрылся внезапно....
http://cache.automation.siemen... nglish.pdf
http://www.automation.siemens.... anguage=en
http://www.automation.siemens.... anguage=en (требуется авторизация на аутомейшен)
http://support.automation.siem... n/31535566
1
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
06.07.2013, 23:28  [ТС] 3
magirus, ок, буду завтра разбираться. а что насчёт эмулятора ПЛК в винде?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
06.07.2013, 23:41 4
насчет эмулятора ПЛК не знаю, а вот эмуляторы модбаса есть, я пользовался этим
http://sourceforge.net/projects/modrssim/
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
09.07.2013, 14:23  [ТС] 5
проблема в следующем: в коммуникационном процессоре CP340 с интерфейсом RS422/RS485 имеется 15-пиновый разъём (вероятно, DB15, насчёт male/female не знаю). в ноутбуке есть только USB. есть преобразователи RS-485 в USB только 9-пиновые. соответственно, сначала надо как-то получить из 15-пинового разъёма 9-пиновый. как это можно сделать? где можно найти распайку.
0
10234 / 6612 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
09.07.2013, 15:07 6
...такой распайки не существует, ибо RS-485 - двухпроводный интерфейс, либо на тех же драйверах, но четырехпроводный RS-422. А вот распиновка, где конкретные RX/TX/GND , на данных разъемах как конвертора USB-RS-485, так и ПЛК вы найдете в официальных даташитах на них на сайтах производителей. Странно, что вы до сих пор этого не сделали.
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
09.07.2013, 18:05  [ТС] 7
raxp, изначально в контроллере, который нам дали, стоял только один модуль ввода-вывода и был MPI, по которому можно тупо передавать проект (как по нему обмениваться какими-либо произвольными данными, тем более по Modbus, я без понятия). этот модуль заменили на CP-340 (т.к. другого не было), в котором есть интерфейс RS-485/422 (X27), 15-пиновый. естественно, Modbus TCP на нём не реализуешь, только простой. после чего долго искали преобразователь интерфейсов RS-422/485-USB. нашли U1150, которому на вход нужен DB9F, с определённой распиновкой для четырёхпроводной RS-422 и двкхпроводной RS-485. так вот, распиновку эту нашли кое-как для сименсовского нестандартного DB5F.(из 15-ти используются 5) и DB9. завтра будем подсоединять проводки. непонятно, с какой целью сименс так извращается.

А почему 'такой распайки не существует'?
0
10234 / 6612 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
09.07.2013, 18:22 8
...разъемы ставят для удобства дальнейшего расширения или использования, или по необходимости выполнения определенных требований, к примеру, по климатическому исполнению. Производители, особенно промышленного оборудования, часто не следуют общепринятым стандартам соответствия железа и интерфейсов, отчасти из-за конкуренции, отчасти для удобства и т.п.

На UPS-ах тоже часто можно встретить якобы USB, но на самом деле выведен, характерный для интерфейса RS-232, DB9. Мы вот в своих ПЛК на DB9 выводили по два независимых RS-485, просто использовали пины как удобно.
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
10.07.2013, 12:47  [ТС] 9
К интерфейсу X27 ноутбук подключили. но оказывается, с CP340 не всё так просто.

вот сообщение с форума automation.

"For Cp 340 modbus module requires -
1."Dongle" i.e. hardware to make module as MODBUS Master or Slave.
2."CP PtP" software to allow SIMATIC to parameterize CP-340 module.
3.Drivers for Modbus Master or Slave as per requirement.

Dongle you have to purchase it separetaly.CP PtP software is freely available on siemens intranet."

Где всё это взять?

Нашёл хороший мануал 97-ого года "S7-300 as Modbus Host" http://read.pudn.com/downloads... 20Host.pdf Но на первом же шаге в нашем проекте в свойствах CP-340 не отображается список возможных протоколов (см. скрин)

Другая проблема в том, что в виртуалке, в которой стоит Simatic Manager, не определяется девайс U1150 от Moxa (в win7 он определяется нормально, как Moxa USB Serial Port COM1)
Миниатюры
Реализация протокола MODBUS TCP в Simatic Step 7  
0
10234 / 6612 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
10.07.2013, 13:35 10
...выкиньте виртуалку и работайте с железом в реальных условиях ...а семерка для промышленного оборудования, ограниченного по характеристикам, не самый лучший выбор.
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
10.07.2013, 14:58  [ТС] 11
raxp,

Параметризация вроде бы сделалась (выбран режим ASCII).

В мануале "S7-300 as Modbus Host" используется библиотека "modbus", в которой есть следующие блоки:
FC1 Modbus CRC calculation function
FB4 Modbus host Preset Multiple Registers function
FB5 Modbus host Read Holding Registers function
FB8 Modbus poll scheduler - polls up to 10 secondaries
FB9 Modbus poll sequence function (write then read from single secondary)
DB1 Table of pre-calculated CRC partial sums, used in CRC calculation.
DB8 FB8 and FB9 instance data block
DB12 P_RCV (CP340 receive function) instance data block
DB13 P_SEND (CP340 send function) instance data block
DB14 FB4 instance data block
DB15 FB5 instance data block
DB91..DB100 Data to/from Modbus secondary 1..10

в библиотеке "modbus", которая есть у нас, этих блоков естесственно нет, есть только P_RCV_RK, P_SND_RK, которые, как я понимаю, предназначены для modbus CP-341. в мануале написано следующее:

"Before installing the Modbus blocks, you must first copy the CP340 interface blocks into your
program. These blocks, FB2, FB3, FC5, and FC6, are located in the CP340 library that was
installed when you installed the CP340 configuration software. Drag these blocks from the
library AP-off folder to your program’s AP-off folder.
The Modbus software is distributed as a STEP 7 import file. This file contains the following
blocks:" (какие, я написал)

Когда был установлен "CP340 configuration software" с диска, который шёл с CP-340, эта библиотека не появилась. Где её можно взять?
0
10234 / 6612 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
10.07.2013, 15:55 12
...вы сейчас чушь пишите, это функциональные блоки, а не модбас-библиотека.

Откройте руководство 'CP340. Первые шаги по применению' на с.1-3 (на русском, кстати): в проекте S7 для центрального процессора дважды щелкните по вкладке BLOCKS и скопируйте все FB2, FB3, FC и т.д., кроме системных, в свой проект.
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
10.07.2013, 21:31  [ТС] 13
raxp, извиняюсь за поздний ответ. вставил из прожекта-примера всё, что там было, кроме системных функций, загрузил в ПЛК, и конечно же не работает, т.к. шнурок воткнут в usb, второго контроллера нет, проверить не на чем. далее по-прежнему, непонятно как пользоваться:

Передача
PEW 0: На модуле цифровых входовSM323 активируйте биты0.1 (ВызовFC11 и
FC12), 0.6 (REQ дляP_SEND) и1.1 (запрос передачи10 байт).
После этогоCP340 передает кадр сообщения длиной10 байт через
последовательный интерфейс(светодиод"TxD" мигает). Для повтора передачи Вы
должны выключить входI 0.6 (REQ дляP_SEND), а затем снова включить его.

Прием
Если Вы принимаете данные от Вашего коммуникационного партнера, они
принимаютсяCP340, например в блок данныхDB20. Целевой адрес задается вFC12 с
меткой"AO: " или"A1: ".
PEW0: Для этого,на модуле цифровых входовSM323 установите биты0.1 (вызовFC11
иFC12), 0.7 (EN_R дляP_RCV) и1.2 (выбор адреса сдвига"2" вDB20) в состояние“1”.
После этого, CP340 должен принимать данные через последовательный интерфейс
(светодиод"RxD" мигает).
Назначение выходных ячеек(PAW4)
Bit 0.0:"Done" при успешном выполнении передачиSEND
Bit 0.1:"Error" при прерванной передачеSEND
Bit 0.2: "BIE" дляSEND
Bit 0.4: "NDR" при успешном приемеRECV
Bit 0.5:"Error" при прерванном приемеRECV
Bit 0.6:"BIE" дляRECV"

у меня нет модуля цифровых входов SM323.

Добавлено через 1 минуту
а, это наверное имеются ввиду индикаторы на модуле..

Добавлено через 1 минуту
можно ли как-то обмениваться кадрами между реальным ПЛК и встроенным в Manager эмулятором?

Добавлено через 11 минут
raxp, касательно модбаса, я так понимаю, на CP340 он нативно сименсом не поддерживается, драйверов нет (на CP341 они есть, их надо покупать). поэтому реализация возможна только по ASCII очень хитрым древним способом, который описан здесь http://read.pudn.com/downloads... 20Host.pdf и для которого не хватает нужной библиотеки (и некого файла под названием modhost.awl). и второй способ xCP modbus drivers, которые составляют хорошую конкуренцию сименсу, так как позволяют использовать более дешёвый CP340 для модбаса, но стоят бешенных денег: http://www.runmode.com/xcp_modbus.html
0
192 / 136 / 62
Регистрация: 23.05.2013
Сообщений: 299
10.07.2013, 21:32 14
Найдите эмулятор modbus. Обменивайтесь с ним. Жизнь станет намного проще. Slave RTU море. Для TCP тоже есть, правда меньше (или мне не везло). Есть и универсальные. Отследите что уходит (и уходит ли?), что приходит.
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
10.07.2013, 21:37  [ТС] 15
menreiven, TCP отпал автоматически, когда вместо Ethernet'а мы кое-как достали CP с RS485/RS422. и простой Modbus, как выясняется, здесь тоже отсутствует. и да, уже раньше кто-то качал exe'шник, выполняющий роль Slave, он есть.

Добавлено через 3 минуты
сейчас даже просто невозможно посмотреть, как идёт обычный обмен (используя готовый проект) через поддерживаемый сименсом 3964(R) или ASCII
0
10234 / 6612 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
10.07.2013, 21:44 16
...почему невозможно посмотреть обычный модбас-аски?
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
10.07.2013, 21:54  [ТС] 17
raxp, я так понимаю, это просто ASCII. иначе, зачем ЗДЕСЬ http://read.pudn.com/downloads... 20Host.pdf всё так долго и нудно расписывалось? а на чём смотреть-то? с эмулятором ПЛК как-то можно обмениваться?

Добавлено через 2 минуты
если CP-341, то в Hardware, в окне параметризации виден нормальный modbus. а за сегодняшний день по CP-340 я не нашёл ни одного рабочего решения.

Добавлено через 4 минуты
полная неопределённость
0
10234 / 6612 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
10.07.2013, 22:44 18
так понимаю, это просто ASCII
не просто аски, а Modbus ASCII.

Насчет эмулятора ничего не скажу, но в любом мониторе Modbus можно вручную забить нужные регистры.
0
28 / 10 / 1
Регистрация: 26.04.2010
Сообщений: 457
10.07.2013, 23:26  [ТС] 19
raxp, странно, везде написано, что это ASCII, к modbus никакого отношения не имеет. но в этой мусорке "интернет" нигде нет разложенной по полочкам информации. вообще непонятно, как этот ASCII работает, какой формат кадра, какие функции используются. есть examples zXX21_01_PtP_Com_CP34x, которые установились вместе с дровами с диска, но, как я уже сказал, это не то и не работает. я сегодня прогуглил ВЕСЬ ГРЁБАННЫЙ ДЕНЬ и не сделал ничего. полная неопределённость. где можно взять понятный пример проектов с коммуникацией между двумя контроллерами (учитывая, что у меня только один, ха-ха!).
0
10234 / 6612 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
11.07.2013, 06:47 20
...по вашей же ссылке:
Configuring the CP340
To work with the Modbus communications software, the CP340 card must be configured to use
the ASCII driver. You do this using the STEP 7 Hardware Configuration utility. Once the
CP340 card is added to your S7-300 rack, double-click on the card to set its properties. STEP
7 will open a window where you can set the CP340 properties.
0
11.07.2013, 06:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2013, 06:47
Помогаю со студенческими работами здесь

Реализация MODBUS TCP Slave на VB6
Подскажите где посмотреть примеры MODBUS SLAVE TCP для VB6 Спасибо.

Знание протокола TCP под Linux, передача данных между клиентом и FTP сервером реализация на С++
Вопрос собственно такой. Есть программа, реализующая передачу данных с ftp сервера на клиент в...

импортировать таблицу символов в Simatic Step-7
Прошу совета. Пытаюсь импортировать таблицу символов в Simatic Step-7 В Simatic Manager открываю...

Simatic Step 5. Чем и как открыть файлы?
- какахостинг удален- есть только эти файлы и все, как их открыть и как узнать какие блоки есть...

Как считать текущее значение счетчика в Simatic Step 7?
Добрый день! Пытаюсь разобраться с Step7. Поставил в тупик вопрос как считать текущее значение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru