Страница 2 из 3

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 13 ноя 2017, 13:16
Andrey.wys
Посмотрите мой пост выше

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 13 ноя 2017, 17:06
Михайло
Andrey.wys писал(а):Обратите внимание, что масса передается в BCD little endian.
В ТИА Портале есть замечательная функция SWAP, которая перевернет байты так, как надо. Работает как для слова, так и для двойного слова. Она заменит сразу четыре первых блока из Вашей программы в Step7.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 14 ноя 2017, 08:40
Andrey.wys
В stl есть caw и cad, но мне так показалось нагляднее. :)

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 14 ноя 2017, 16:44
Михайло
В LAD нету аналогов CAW/CAD?

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 14 ноя 2017, 20:22
Andrey.wys
Я не нашел, хотя я сильно не искал.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 14 ноя 2017, 20:25
Михайло
Ну в старом Step7 все так и есть: совместимость языков ограничена, STL более функциональный. В ТИА Портале объявлена война несовместимости языков = неразвитости LAD/FBD, теперь эти языки широкофункциональны. Но теперь они не дотягивают до SCL. Но это уже история S7-2200. :)

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 01:51
StudAsu
Добрый день, подскажите пожалуйста по протоколу Тензо-м. Не могу организовать обмен данными,
Конфигурация порта прошла нормально, отправка тоже идет без ошибок, а вот принимать не чего не удается, точнее я даже ошибки не получаю, совсем не чего.
Отправку
https://prnt.sc/ldlz5w
Данные которые я отправляю
https://prnt.sc/ldlvrv
Выдержка из инструкции
https://prnt.sc/ldlxk4
то что хочу забрать
https://prnt.sc/ldm024
Прием данных
https://prnt.sc/ldlp3x
Контролирую счетчиками посылку и прием, посыл я вижу считает нормально, и ответ я пытаюсь получить, команду для этого я отправляю, а вот получения не какого я не получаю. Прощу помощи уважаемые эксперты.
я хотя бы правильно формирую пакет, он реально выглядит как нужно для запроса?
FF 01 C3 E3 FF FF
Именно это поступает на устройство?
Инструкция на протокол
https://www.tenso-m.ru/pdf/protocoli/pPt-1_06.pdf

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 07:04
Andrey.wys
Вы сначала к модулю компьютером подключитесь и посмотрите терминалом что он отправляет. Потом отправьте данные и посмотрите прием в контроллере.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 09:29
StudAsu
Если я Вас правильно понял то для этого как минимум нужен преобразователь RS485 USB и программа для перехвата пакетов проверяющая что приходит на указанный порт? Так ли это? Откровенно говоря этого под рукой нет и сейчас даже приобрести не получится, возможно есть возможность обойтись без этого??

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 15:00
Andrey.wys
Попробуйте передать FF01C3E3FFFF, у вас в С4 лежит 16#10, а не 16#E3 Для теста в SendPTP.REQ поставьте блинкер раз в секунду, а в RCV.EN_R всегда единицу.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 16:31
StudAsu
В СМ4 находится Е3, на скрин случайно попало это значение, просто ставил эксперимент с другими данными.
После того как я изменил входа на блоках отправки и получения, не чего не изменилось, я так же получаю успешную отправку пакетов, а вот получения не происходит.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 16:46
Andrey.wys
Сравнивайте настройки портов в сименсе и весовом контроллере. Они должны быть одинаковыми. Возможно у вас скорость не совпадает. Без теста с компьютером вам будет сложно разобраться.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 17:13
StudAsu
настройки проверял и даже скорость старался снизить с целью увеличения надежности, но увы...
Я Вас понял, спасибо, видимо просто поставлю OPS сервер. Если не найду чем подключить к ПЛК и весам

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 17:17
Andrey.wys
StudAsu писал(а):настройки проверял и даже скорость старался снизить с целью увеличения надежности, но увы...
Я Вас понял, спасибо, видимо просто поставлю OPS сервер. Если не найду чем подключить к ПЛК и весам
А у вас точно RS485 в весовом контроллере? У меня к сименсу по RS232 подключение.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 19:05
StudAsu
На весовом терминале указано RS232/RS485, варианта выбрать какой то именно нет, но в инструкции указано что пользуйтесь любым в зависимости от того что читает принимающая сторона.

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 05 ноя 2018, 19:09
Andrey.wys
Проверяйте, что вы действительно подключены по rs485 и настройки подключения с обоих сторон правильные

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 06 ноя 2018, 08:21
and909
Недавно писал обмен с Тензо-М, но на Дельте.

Терминал ТВ-003П

Распиновка DB9:

2 Rx RS232
3 Tx RS232
5 Gnd RS232

7 A+ RS485
8 B- RS485
9 Общий (Gnd???) RS485

Я связывался по RS485
Параметры связи по умолчанию: 19200-8-N-1 (Подстраивался под весы, чтобы в случае замены весов ничего не перенастраивать)

Запрос на передачу веса Нетто: FF 01 C2 8A FF FF

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 06 ноя 2018, 15:26
Andrey.wys
Я когда-то написал программу для подсчета контрольной суммы для тензо-м. Никаких юнит-тестов и проверок на ввод данных не содержит. Делалось на коленке для себя. Может кому пригодится.
TenzoCRC.zip

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 06 ноя 2018, 16:27
and909
А можно на пальцах (берем это, умножаем на это...) объяснить, как считается CRC у Тензо-М? Читал инструкцию в мануале, но не понял(((

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Добавлено: 06 ноя 2018, 16:30
Andrey.wys
Вот на пальцах

Код: Выделить всё

Public Class Form1
    Public Function CRC8(ByVal Bytes As Byte) As Byte
        Dim crc As Byte = &H0
        Dim Poly As Byte = &H69
        Dim  j As Integer
        Dim Data, fb As Byte
        Data = Bytes
        fb = crc
        For j = 0 To 7
            fb = Data Xor crc
            fb = fb >> 7
            crc = crc << 1
            Data = Data << 1
            If fb = 1 Then
                crc = crc Xor Poly
            End If
        Next
        Return crc
    End Function

    Private Sub CalcCRCButton_Click(sender As Object, e As EventArgs) Handles CalcCRCButton.Click
        Dim SummCRC As Byte = &H0
        If TextBoxCRC1.Text <> "" Then
            SummCRC = CRC8(Convert.ToByte(TextBoxCRC1.Text, 16))
            If TextBoxCRC2.Text <> "" Then
                SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC2.Text, 16))
                If TextBoxCRC3.Text <> "" Then
                    SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC3.Text, 16))
                    If TextBoxCRC4.Text <> "" Then
                        SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC4.Text, 16))
                        If TextBoxCRC5.Text <> "" Then
                            SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC5.Text, 16))
                        End If
                    End If
                End If
            End If
        End If
        CRC.Text = Hex(SummCRC)
    End Sub