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

Считывание диагностических данных по второму каналу с помощью 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 пользователей

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




  • Сообщения

    • gudstartup
      если есть бэкап plc раздела то залейте чтобы исключить вероятность в разделе plc у меня например есть вот такие файлы они занимаются обслуживанием ключа   возможно также повредился файл регистрации ключа
    • karlf
      Посмотрю в понедельник. Ну а какова вообще вероятность того, что дело в ПО, а не в железе?
    • vladimir.songin
      Так между прочим, кто-то на форуме фотографии очень похожего преса показывал. У них в поле энкодера значение энкодера.   Вся электросхема пожалуста.  GLADIATOR E3A 115-33 schema elettrico.pdf  
    • v-david
      Вы выбрали конфигурацию, но не активировали ее:       Set swCustPropMgr = CmpDoc.Extension.CustomPropertyManager(CompConfig) '------------------------------------------------------------------------------- lRetVal = CmpDoc.ShowConfiguration2(CompConfig) '-------------------------------------------------------------------------------     lRetVal = swCustPropMgr.Get4("Наименование", False, Val, ValOut)     If ValOut = Empty Then         Set swCustPropMgr = CmpDoc.Extension.CustomPropertyManager("")         lRetVal = swCustPropMgr.Get4("Наименование", False, Val, ValOut)
    • hlibhlib
      При двойном клике на имеющийся Размер для редактирования и последующем подтверждении действия слетают Настройки CAD на дефолт. ===> Бесит! Этого не было в предыдущих версиях. Может какие-то настойки нужны?  Сталкивался-ли кто с такой ситуацией?  Как выход из положения настроил линии и дуги в настройках Атрибутов. Вроде работает, но в меню Главная Цвет и ширина каркасной геометрии Дефолтная.  
    • Viktor2004
      Импортозамещение  
    • vad0000
      Нет, просто отключаете, и забываете о ней   Не надо ничего делать   Откуда приходит сигнал 24 вольта на 7 вход сервоусилителя? Фото другой страницы схемы
    • maxx2000
    • vladimir.songin
      То есть отключаю аналоговую обратную связь от аналогового входа, и подключаю вместо энкодера? Так не делал но сомнения у меня: Вход энкодера может  быть 12 или 5 вольт. У нас 12. Два пина питание, два пина Каналы A B соответственно, один пин REF (непонятно что он означает и как работает). Остальные соеденены вместе. На какие из них подавать аналаговый вход обратной связи дефлектора.  сигналы от энкодера приходят, проверял осцилографом на самом разьёме непосредственно на входе DM02, и некое значение уже могло бы отобразиться в поле энкодера при отключенном аналаговом входе.  Если отключить аналоговый вход, то видим единичку в обоих полях, но уже писал об этом.  
    • Алексей 1977
      Кто знает подскажите как отключить этот ненужный набор букв и символов в готовой УП? Я так думаю надо редактировать постпроцессор? Заранее спасибо ( Общая длина: 130.0) ( Заготовка:) ( MIN X: -10.970) ( MIN Y: -10.970) ( MIN Z: -6.500) ( MAX X: 10.970) ( MAX Y: 10.970) ( MAX Z: 0.000) ( COORDINATE SYSTEM: Глобальная СК) ( Кончик инструмента:) (   X: -0.000) (   Y: 0.000) (   Z: 10.000) ( Рекомендованная длина: 50.000) ( Количество кромок: 4) ( Инструмент:   Концевая фреза) ( DIAMETER: 10.000) ( Безопасность:) ( Рабочие ходы инструмента: Безопасная БЕЗ зарезов) ( Подводы инструмента: Безопасная БЕЗ зарезов) ( Переходы инструмента: Безопасная БЕЗ зарезов) ( Рабочие ходы патрона: Столкновения НЕ проверялись) ( Подводы патрона: Столкновения НЕ проверялись) ( Переходы патрона: Столкновения НЕ проверялись) ( Траектория: Шаблон) ( STEPOVER: 5.000) ( ДОПУСК:0.100) ( THICKNESS:0.000) ( Статистика:) ( LENGTH: 95.318)( LIFTS: ( TIME: 0/00/05) 1) G0X0Y0 G43Z10.H13 X4.75Y-8.227 Z5. G1Z0F500 X9.5Y-5.485F1000 Y5.485 X0Y10.97 X-9.5Y5.485 Y-5.485 X0Y-10.97 X4.75Y-8.227 G0Z10.
×
×
  • Создать...