Перейти к публикации

Считывание диагностических данных по второму каналу с помощью OPC сервера KEPServerEX


AndreyLow

Рекомендованные сообщения

Здравствуйте, столкнулся с проблемой считывания диагностических данных по второму каналу с помощью OPC сервера KEPServerEX на токарном станке со стойкой Fanuc 32I.

Функция cnc_diagnoss:A:B, где A - номер параметра, B- номер оси.

Подскажите направление куда копать?

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts
4 минуты назад, gudstartup сказал:

Необходимо добавить Fwlib32.lib в ресурсы и все скомпилируется!

Добавил

 

HDCPY000.JPG

Ссылка на сообщение
Поделиться на других сайтах

Это Ваш первый пример

18 часов назад, Viktor2004 сказал:

#include <iostream>
#include "fwlib32.h"
using namespace std;
int main()
{
    const char *IP = "192.168.1.26";
    unsigned short port = 8193;
    long timeout = 10;
    unsigned short FlibHndl = 0;
    short ret;
    bool a;
    cout << "1-ON  0-OFF\n" ;
    cin >>  a;
    if (a==1)
    {
        ret = cnc_allclibhndl3( IP, port, timeout, &FlibHndl );
        if (ret == EW_OK)
        {
            cout << ("Uspeshno podkluchen ! ") << endl;
        }
        else
        {
            cout << ret << " " << endl;
        }
    }
    else
    {
         ret = cnc_freelibhndl(FlibHndl);
                    if (ret == EW_OK)
                    {
                        cout << ("Otklucheno uspeshno ! ") << endl;
                    }
                    else
                    {
                        cout << ret << " " << endl;
                    }
    }
    return 0;
}

 

 

Ссылка на сообщение
Поделиться на других сайтах
Только что, gudstartup сказал:

Это Ваш первый пример

Я пытаюсь компилировать тот вариант что мне здесь предложили.

Свой вариант я год назад мучил, так и закинул.

Мне его даже профессиональный программист не смог скомпиллировать.

Ссылка на сообщение
Поделиться на других сайтах

Я вам написал добавить его в проект 

image.png

2 минуты назад, Viktor2004 сказал:

Свой вариант я год назад мучил, так и закинул.

Ваш первый вариант прекрасно компилируется как вы можете видеть!

Могу скинуть вам проект но он VS2019 Community

Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, gudstartup сказал:

Я вам написал добавить его в проект 

чего добавить в проект? Fwlib32.lib я в ресурсы добавил. Исходник у меня Connect.cpp

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Viktor2004 сказал:

чего добавить в проект?

Необходимо добавить его FWLIB32.LIB еще и в папку Resource files в solution explorer  а у вас как я вижу  в ней  ничего нет.

image.png

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, gudstartup сказал:

а у вас как я вижу  в ней  ничего нет.

посмотрите прикрепленную фотографию где я написал "Добавил"

Ссылка на сообщение
Поделиться на других сайтах

И компилируйте ваш первый пример во втором нет даже функции main():smile:

Только что, Viktor2004 сказал:

посмотрите прикрепленную фотографию где я написал "Добавил"

А вы посмотрите мою где у вас в папке resource files ничего не видно! Там должен появится файл как и в случае с вашим файлом заголовка fwlib32.h и он должен называться fwlib32.lib

image.png

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, gudstartup сказал:

А вы посмотрите мою где у вас в папке resource files ничего не видно!

После того как я добавил в проект файл FWLIB32.LIB он отобразился у меня в проекте и я выложил второй скрин на форум. В Вашем фото он не появился потому что для этого надо скачать прикрепленный мной второй скрин и увеличить его.

Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Viktor2004 сказал:

посмотрите прикрепленную фотографию где я написал "Добавил"

На ваших фото очень плохое разрешение теперь рассмотрел на втором снимке

Теперь вам необходимо добавить функцию main() в ваш проект и вызвать вашу функцию example  в теле main() поэтому я и советую вам компилировать вашу первую программу а не приведенный пример ибо она имеет правильную структуру

Изменено пользователем gudstartup
Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, gudstartup сказал:

поэтому я и советую вам компилировать вашу первую программу а не приведенный пример

Ну, у меня Visual Studio зависла.

Вероятно надо ей создать виртуальную машину помощнее

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Viktor2004 сказал:

Ну, у меня Visual Studio зависла.

Поставьте на host новую MVS на виртуалке у меня тоже сильно тормозит

Вот ваш скомпилированный файл

Focas.exe

Ссылка на сообщение
Поделиться на других сайтах
12 минут назад, gudstartup сказал:

Вот ваш скомпилированный файл

спасибо. Работает

Буду искать новое железо для компиллятора

Почему же профессиональные программисты которым я свой исходник отправлял, не могли скомпиллировать? Я им и все библиотеки давал. 

Зять мой в их числе. Позиционирует себя программистом

Изменено пользователем Viktor2004
Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, gudstartup сказал:

:smile:

Объясните мне пожалуйста для понимания.

Я читал что .lib это статическая библиотека, а .dll динамическая.

В чем их суть? Моя программа имеет функции которые описаны в библиотеке. Статической или динамической?

Вроде ссылки на функции дает заголовочный файл. И для чего в фануковской папке Fwlib целая куча библиотек .dll ? Они все нужны или частично? Чем они отличаются например fwlib30i.dll и fwlib32.dll?

Ссылка на сообщение
Поделиться на других сайтах

Отвечаю на вопрос по версии: KepServerEx v6.9

Функция cnc_diagnoss:A:B по первому каналу работает. А вот как организовать доступ к диагностическим данным второго канала не ясно.

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, AndreyLow сказал:

Отвечаю на вопрос по версии: KepServerEx v6.9

Вы уж извините что я вашу тему зафлудил. Больше не буду

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, Viktor2004 сказал:

В чем их суть? Моя программа имеет функции которые описаны в библиотеке. Статической или динамической?

В вашем случае в статической!

По повод разницы привожу цитату с хабра

Статическая библиотека это фактически архив объектных файлов, который используется в процессе статической линковки. В результате статической линковки из многих объектных файлов получается один исполняемый, запускается статическая линковка в момент создания исполняемого файла.

Динамическая библиотека это фактически исполняемый файл (т.е. DLL и EXE в Windows имеют одинаковый формат). Динамическая линковка запускается в момент создания процесса (когда вы запускаете исполняемый файл на выполнение), линкуются между собой несколько исполняемых файлов каждый раз, когда создается новый процесс. Так же возможна динамическая линковка уже после запуска, т.е. новая библиотека может быть подгружена в адресное пространство ужа работающего процесса.

Сделать из статической библиотеки динамическую в принципе можно - необходимо ее (статически) слинковать в динамическую библиотеку, при этом будет создана динамическая библиотека и статическая стаб-библиотека, которую можно использовать в проекте вместо статической библиотеки, чтобы вызывать функции из динамической библиотеки.

Подразумевается, что динамическая библиотека - уже есть в системе, и при запуске вашей программы библиотеку не нужно копировать вместе с вашей программой - необходимая (или совместимая) версия библиотеки уже будет доступна в системе.

Статическая линковка - вы линкуетесь с конкретным файлом, и если копируете программу на другую машину, копируете и эту библиотеку вместе с исполняемым. С одной стороны у вас более надежно - точно заработает. С другой стороны - размер инсталлятора больше, если понадобилась статическая линковка - значит вы используете нестабильную/устаревшую библиотеку (это если мы говорим о системных библиотеках. Свои кастомные библиотеки можно линковать как вам удобно)

Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, AndreyLow сказал:

Отвечаю на вопрос по версии: KepServerEx v6.9

Функция cnc_diagnoss:A:B по первому каналу работает. А вот как организовать доступ к диагностическим данным второго канала не ясно.

Так ведь в функцию не передается номер канала. Только номер оси и параметр.

Что происходит когда Вы задаете ось относящуюся к второму каналу?

Ссылка на сообщение
Поделиться на других сайтах

Или может надо предварительно установить номер канала с которым работаете

функцией cnc_sdtsetchnl

 

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • lem_on
      По моему вполне логично если станок вывалится в ошибку если рука не доехала до места. У меня так же если кулачки или деталь на пути, просто пихаеш ее до места и станок опять активен. Но нынешние пановья даже не могут написать модель станка.
    • Viktor2004
      Я согласен что скорее всего проблема механическая Но если логика прописана криво и возможно не предусмотрела остановку в промежуточном состоянии, разве не логично будет попробовать принудительно подав напряжение дернуть эту руку вверх-вниз? Возможно то что туда попало выпадет  
    • Guhl
      Если оставить за скобками вопрото том, что до м19 работает нормально, а после нет, то вы не считали сколько у него реально импульсов на оборот? с помощью стороннего плк, например  А если ориентацию м5 снимать, а не м20?
    • lem_on
      Что это за станок такой в котором сразу ладер ковырять надо, даже не смотря на возможность механической проблемы? Или профдеформация?
    • Viktor2004
      не сразу я понял в чем вопрос. Долго соображал что такое режим управления скоростью. При завершении ориентации PMC снимает сигнал G70.6 ? И если он после снятия сигнала продолжает удерживать шпиндель, при каких условиях эта ориентация все же снимается? После нажатия аварийного грибка или еще как?
    • Viktor2004
      Ладдер пришлите. Будем принудительно пробовать поднимать и опускать
    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
    • Александр1979
      SP9047 SSPA:47 ILLEGAL SIGNAL OF POSITION CODER "The relationship between the A/B phase and 1-rotation signal is incorrect (Pulse interval mismatch)." "Неправильное значение счетчика импульсов сигнала на энкодере ALPHAi. На фазах A и B энкодера за один оборот шпинделя насчитывается 4096 импульсов обратной связи. Программное обеспечение по управлению шпинделем проверяет количество импульсов на фазах A и B, соответствующее энкодеру, при каждой генерации сигнала одного оборота. Данный аварийный сигнал срабатывает, если регистрируется число импульсов, нарушающее заданный диапазон."
    • vs3dpro
      Добрый день! У нас на есть SLA принтер 600х600х400мм. Можно напечатать мастер- модели, и можно приехать посмотреть. mail@iges.space
×
×
  • Создать...