Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
3 / 3 / 2
Регистрация: 18.01.2011
Сообщений: 54

Пример управления сервоприводом по протоколу CAN. С С++ перевести на VB

17.10.2011, 13:38. Показов 2186. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Это пример управления сервоприводом по протоколу CAN. В С++ ничего не понимаю. Помогите пожалуйста перевести данный код на VB. Спасибо...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// drive_control_sample.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "Common.h"
#include "moto_dll2.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
        int res;
        int pos;
        double val;
 
                printf("Sample HSD control program v 0.1\n");
                InitParser();
                printf("Init done, searching for device\n");
                int t=EnumDevices(false);
                if(t==0)
                {
                        printf("Error - device not found - check connection and power supply\n");
                        CloseParser();
                        exit(1);
                }
                printf("Found %d devices, working with device 1\n",t);
                printf("Checking status...");
                res=ReadVal(1,"dd11",&val);
                if(res!=ERR_OK)
                {
                        printf("Comm error %d\n",res);
                        CloseParser();
                        exit(2);
                }
                if((int)val!=0)
                {
                        printf("Drive 1 not ready: status=%d\n",(int)val);
                        CloseParser();
                        exit(2);
                }
                printf("OK\n");
                printf("Starting cycle - make sure position loop is closed and running PLC program doesn't alter position\n");
 
                while(1)
                {
                        printf("Now writing position\n");
                        pos=100000;
                        res=WriteVal(1,"ct3",100000.0);
                        if(res!=ERR_OK)
                        {
                                printf("Comm error %d\n",res);
                                CloseParser();
                                exit(2);
                        }
                        printf("Waiting for drive to complete task");
                        while(1)
                        {
                                Sleep(100);
                                res=ReadVal(1,"dd8",&val);
                                if(res!=ERR_OK)
                                {
                                        printf("Comm error %d\n",res);
                                        CloseParser();
                                        exit(2);
                                }
                                if((int)val==pos)
                                {
                                        printf("Done\n");
                                        break;
                                }
                                else
                                {
                                        printf(".");
                                }
                        }
 
                        printf("Now writing position\n");
                        pos=0;
                        res=WriteVal(1,"ct3",0.0);
                        if(res!=ERR_OK)
                        {
                                printf("Comm error %d\n",res);
                                CloseParser();
                                exit(2);
                        }
                        printf("Waiting for drive to complete task");
                        while(1)
                        {
                                Sleep(100);
                                res=ReadVal(1,"dd8",&val);
                                if(res!=ERR_OK)
                                {
                                        printf("Comm error %d\n",res);
                                        CloseParser();
                                        exit(2);
                                }
                                if((int)val==pos)
                                {
                                        printf("Done\n");
                                        break;
                                }
                                else
                                {
                                        printf(".");
                                }
                        }       
                        printf("Press q to quit or any other key for one more cycle\n");
                        int c=getch();
                        if(c=='q')break;
                }
        CloseParser();
        exit(0);
 
        return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.10.2011, 13:38
Ответы с готовыми решениями:

Перевести код управления сервоприводом по протоколу CAN
Здравствуйте! Это пример управления сервоприводом по протоколу CAN. В С++ ничего не понимаю. Помогите пожалуйста перевести данный код на...

Программа для управления помпой и сервоприводом
Помогите разобраться в программе. В Ардуино новичок. Хочу понять, как это всё работает. #include <Servo.h> #define IN1 2 ...

Приложение для управления девайсом по протоколу Modbus RTU
Здравствуйте! Необходимо написать приложение для управления источником постоянного тока по протоколу Modbus RTU. Канал обмена RS-485. ...

1
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
17.10.2011, 14:40
...а хэдер нам самим додумывать?

В данном, вырванном из общего контекста, куске никакого CAN не вижу, есть только чтение-проверка-запись в некоторую функцию-макрос ReadVal() и WriteVal().
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2011, 14:40
Помогаю со студенческими работами здесь

Нужен пример программы для управления БД
Здравствуйте! Скиньте пожалуйста хороший пример программы для управления базой данных, в которой имеется две главные таблицы и одна...

Нужен пример управления приложением с помощью клавиатуры
Добрый день! Я пишу небольшую программу, типо игрушки, там нужно управлять кнопками с клавиатуры. Подскажите пожалуйста как управлять...

Перевести пример из VB.net в C#
Было бы неплохо, если перевели пример https://www.cyberforum.ru/vb-net/thread331768.html#post1832460 и поместили его в FAQ. :)

Перевести пример на язык LISP
Помогите перевести пример на язык LISP

Перевести пример кода на PHP
Здравствуйте! Только стал изучать данный язык, никак не могу понять работу с классами. Нужно перевести аналогичный пример кода на php. ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru