Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Чт мар 28, 2024 12:52

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 3 сообщений ] 
Автор Сообщение
 Заголовок сообщения: ПОСЫЛКА КОМАНД FIND КОМПЬЮТЕРНОЙ СТАНЦИЕЙ контроллеру
СообщениеДобавлено: Чт июн 25, 2009 10:52 
Не в сети

Регистрация: Чт июл 10, 2008 03:15
Сообщения: 76
Откуда: Блага
Друзья !
Задача : требуется прочитеать 150 слов из области памяти DM .
Программу пишу на Microsoft Visual 2008 C++.
Код:
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
if (BN_CLICKED == wmEvent)
{
wVersionRequested = MAKEWORD( 2, 2 ); Ret_funct = 0;
Ret_funct = WSAStartup(wVersionRequested,&wsaData);//&lpWSAData);
if ( Ret_funct != 0 ) { DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); }
my_sock = 0;
my_sock = socket(AF_INET,SOCK_DGRAM,0);
if ( my_sock == INVALID_SOCKET ) {DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); }

HOSTENT *hst;
sockaddr_in FAR dest_addr;
u_short _9600_PORT = 9600;
#define IP_ETN21 "192.168.1.19"
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(_9600_PORT);
dest_addr.sin_addr.S_un.S_addr = inet_addr(IP_ETN21);
//const char a1 = 0x80;
const char FAR buff[18]={0x80,0x00,0x02,0x00,0x13,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x82,0x00,0x13,0x01,0x00,0x96};
//buff[0] = 0x80; // *ICF*
//buff[1] = 0x00; // *RSV*
//buff[2] = 0x02; // *GST*
//buff[3] = 0x00; // *DNA*
//buff[4] = 0x13; // *DA1*
//buff[5] = 0x00; // *DA2*
//buff[6] = 0x00; // *SNA*
//buff[7] = 0x01; // *SA1*
//buff[8] = 0x00; // *SA2*
//buff[9] = 0x01; // *SID*
//buff[10] = 0x01; // *MRC*
//buff[11] = 0x01; // *SRC*
//buff[12] = 0x82; // Memory DM
//buff[13] = 0x00; // Firs arddress for read
//buff[14] = 0x13;
//buff[15] = 0x01;
//buff[16] = 0x00;
//buff[17] = 0x96; // 150 bytes for read;
if ( sendto(my_sock,buff,sizeof(buff),0,(sockaddr* FAR)&dest_addr,sizeof(dest_addr)) == SOCKET_ERROR){
// ВЫДАТЬ сообщение об ошибке посылки функций.
}
sockaddr_in FAR server_addr;
char FAR rec_buff[2010];;// public;//[315]; public;
int length_server_addr = sizeof(server_addr);
if (recvfrom(my_sock,(char*)rec_buff,sizeof(rec_buff),0,(sockaddr* FAR)&server_addr,&length_server_addr) == SOCKET_ERROR) { //==314){//== SOCKET_ERROR) {
// ВЫДАТЬ сообщение об ошибке чтения
}

// конец кода.
В результате должен иметь в переменной rec_buff массив состоящий из обратного заголовка FINS (10 байт), команды FINS (2 байта),главный код ответа (1 байт) и дополнительный код ответа (1 байт). затем данные (не более 1998 байт).
Функции socket, sendto и recvfrom ошибок не выдают.. вроде как всё проходит удачно (причём функция recvfrom возвращает 314 байт при чтении 150 байт области DM. - это я вычислил, точно!).
Но в итоге в rec_buff нифига не получаю .

В чём я ошибся, помогите пожалуйста с написанием.

(номер модуля ETN21 : 1
IP : 192.168.1.19
сеть : 1 )
IP компа-клиента в лвс : 192.168.1.2


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июн 25, 2009 12:08 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
а хрен его знает где ошибся.
попробуй у французов примеры посмотреть, но там на VB
http://www.support-omron.fr/Logiciels.html


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июн 25, 2009 13:23 
Не в сети

Регистрация: Чт июл 10, 2008 03:15
Сообщения: 76
Откуда: Блага
чёт посмотрел..... тяперече визуал басик надо .... а есть какие нить свои разработки прог в этой сфере ?


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 3 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: в настоящее время на конференции нет зарегистрированных пользователей и гости: 9


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

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3