Показано с 1 по 10 из 10

Тема: Не видит библиотеки

  1. #1

    По умолчанию Не видит библиотеки

    Добрый день
    Установил библиотеки и OwenCommunication и CAA
    {attribute 'qualified_only'}
    VAR_GLOBAL
    // Управление источником
    Volt : REAL := 0.0;
    Tok : REAL := 0.0;
    HighVoltageEnable : BOOL := FALSE;
    SendCommand : BOOL := FALSE; // Триггер отправки

    // Данные с МВ210-102
    RawAnalogValue : WORD := 0;
    Current_mA : REAL := 0.0;
    Pressure_Pa : REAL := 0.0;
    PrevPressure : REAL := 0.0;
    BreakdownCount : INT := 0;

    // TCP-клиент
    eState : CLIENT_STATE := CLIENT_STATE.CREATE;
    fbTcpClient : NBS.TCP_Client;
    fbTcpWrite : NBS.TCP_Write;
    fbTcpRead : NBS.TCP_Read;
    stIpServer : NBS.IP_ADDR := (sAddr := '192.168.0.120');
    uiPortServer : UINT := 1470;
    hConnection : NBS.HANDLER := 0; // Дескриптор соединения
    xConnected : BOOL := FALSE;

    // Буферы
    sSendBuffer : STRING(100) := '';
    sReceiveBuffer : STRING(256) := '';

    // Внутренние
    fbSendTrig : R_TRIG;
    fbTimeout : TON;
    END_VAR

    При этом все NBS переменные не заданы.
    А как так?

    СCodesys переставлял, не помогло...
    Изображения Изображения

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,606

    По умолчанию

    Добрый день.

    Если ориентироваться на приведенные вами объявления - то нужно добавить библиотеку Net Base Services (не CAA Net Base Services) в менеджер библиотек (это не репозиторий библиотек, а другая сущность) вашего проекта.
    См. узел Менеджер библиотек в дереве проекта.

    Код:
    hConnection : NBS.HANDLER := 0; // Дескриптор соединения
    В библиотеке NBS нет объекта HANDLER, так что тут в объявлении ошибка.

    Но, вполне вероятно, что всё это вам вообще не нужно.
    Я рекомендую вам описать задачу, которую вы хотите решить, а не углубляться пока что в придуманное кем-то решение.

  3. #3

    По умолчанию

    Да в общем-то ваш ответ помог более чем)
    а в общем задачу следующая , нужно заставить ПЛК По Modbus TCP Отправлять команды типа: sr 3 1 , sr 3 0, sr 4 xx ну ит.д. с добавлением CR LF На конце.

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,606

    По умолчанию

    нужно заставить ПЛК По Modbus TCP Отправлять
    Для работы с Modbus TCP - NBS не нужна.
    Можно использовать упомянутую OwenCommunication или вообще настроить обмен по Modbus TCP через дерево проекта.

    Или же речь не о Modbus TCP, а о некоем нестандартном протоколе, который реализуется поверх TCP/IP?
    Тогда использование NBS выглядит более адекватно (хотя в OwenCommunication для этого есть готовый UNM_TcpRequest)

  5. #5

    По умолчанию

    В общем да не получился не один из вариантов.
    Буду рад хотя бы направлению...
    Есть команды формата: sr 3 1 \r\n, sr 4 1000 \r\n как бы научить ПЛК210-03 CS Передавать эти команды по адресу 192.168.0.120 , порт 1470, в формате ASCII?
    Попытался сделать через сокеты - не работает, ещё пытался, но тоже не особо.
    Пару конфигов прикрепил...
    Не по одному устройство не реагирует
    Изображения Изображения
    Вложения Вложения

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,575

    По умолчанию

    В этом плк можно зайти в консоль, набрать скрипт на питоне и проверить доходить ли команда до абонента, если все нормально то можно из проекта через sysexecute запускать этот скрипт по мере необходимости.
    Это если другие способы не помогают
    Код:
    import socket
    import sys
    
    def send_command(arg1, arg2):
        try:
            # Создаем сокет
            client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            
            # Устанавливаем таймаут на 3 секунды
            client.settimeout(3)
            
            # Параметры подключения
            host = "192.168.0.120"
            port = 1470
            # Формируем команду с переданными аргументами
            command = f"sr {arg1} {arg2} \r\n"
            
            # Подключаемся к серверу
            client.connect((host, port))
            
            # Отправляем команду в ASCII формате
            client.sendall(command.encode('ascii'))
            
            # Получаем ответ
            response = client.recv(1024).decode('ascii')
            
            # Проверяем наличие ACK в начале ответа
            if response.startswith("ACK"):
                print(f"Успешный ответ от сервера: {response}")
            else:
                print(f"Ошибка: неверный ответ сервера: {response}")
                
        except socket.timeout:
            print("Ошибка: истекло время ожидания ответа")
        except Exception as e:
            print(f"Произошла ошибка: {str(e)}")
        finally:
            # Закрываем соединение
            client.close()
    
    if __name__ == "__main__":
        # Проверяем количество переданных аргументов
        if len(sys.argv) != 3:
            print("Использование: python script.py <аргумент1> <аргумент2>")
            sys.exit(1)
            
        # Получаем аргументы из командной строки
        try:
            arg1 = int(sys.argv[1])  # Преобразуем в целое число
            arg2 = int(sys.argv[2])  # Преобразуем в целое число
        except ValueError:
            print("Ошибка: аргументы должны быть целыми числами")
            sys.exit(1)
            
        # Вызываем функцию с переданными аргументами
        send_command(arg1, arg2)
    Запустите скрипт из командной строки, передав два числовых аргумента: python script.py 3 1
    Последний раз редактировалось capzap; 12.09.2025 в 15:03.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,606

    По умолчанию

    Буду рад хотя бы направлению...
    Для начала добейтесь успешного обмена между устройством и вашим ПК.
    Для этого можно использовать Hercules (https://ftp.owen.ru/Soft/hercules_3-2-8.exe) или любую другую аналогичную утилиту.
    До этого момента что-то делать на ПЛК, на мой взгляд, смысла нет.

  8. #8

    По умолчанию

    Так с компа то управление прикручено давным Давно через CoreBus И уже даже свою программу на C# сделали.
    Управление есть, все работает все нормально.
    Теперь собственно задача сделать это все на ПЛК...

  9. #9

    По умолчанию

    Спасибо!
    Осталось понять как это реализовать... Но Питон это интересно, не знал что он такое умеет.
    Нет ли где-то ещё инструкции как собственно это запустить, так понимаю должен был файл .py И вызов его из codesysa...
    Был бы благодарен за информацию по запуску.
    Собственно да, с консолькой я разобрался, а вот как и куда пихать скрипт - нет, инструкцию скачал с примеров но там для СПК и не понятно вообще как создать директорию...
    Последний раз редактировалось TrTinf; 12.09.2025 в 16:15.

  10. #10
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,606

    По умолчанию

    Цитата Сообщение от TrTinf Посмотреть сообщение
    Так с компа то управление прикручено давным Давно через CoreBus И уже даже свою программу на C# сделали.
    Управление есть, все работает все нормально.
    Теперь собственно задача сделать это все на ПЛК...
    Тогда напишите на support@owen.ru, пожалуйста
    В письме приложите ссылку на эту тему

Похожие темы

  1. Не видит библиотеки с репозитория библиотек
    от sekerin в разделе СПК210, СПК1xx [М01]
    Ответов: 8
    Последнее сообщение: 01.04.2020, 16:17
  2. Ответов: 1
    Последнее сообщение: 19.03.2020, 10:28
  3. MS не видит OPC HDA 1.2
    от Dmitrijb в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 28.04.2015, 16:50
  4. Компилятор не видит типы данных из библиотеки ArchivatorOwenLib
    от Солнечный заяц в разделе СПК2xx (архив)
    Ответов: 5
    Последнее сообщение: 24.07.2012, 14:18
  5. ОРС не видит ТРМ 138
    от VlOg1 в разделе Сетевые технологии
    Ответов: 7
    Последнее сообщение: 27.11.2008, 21:26

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •