SIEMENS, DF&PD

Предыдущее посещение: Сб июл 09, 2016 10:05 Текущее время: Сб июл 09, 2016 10:05

Часовой пояс: UTC + 3 часа




 [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Помогите разобраться с кодом к кнопке в wincc,пожалуйста
СообщениеДобавлено: Чт дек 02, 2010 9:38 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Добрый день!!!! я прошу прощенья, ну мне нужна помощь прямо таки с самих азов программирования!!!!! У меня есть готовый проект ,выполненный в WinCC сейчас рвзбираюсь в нем !!!! Не все понимаю в коде к кнопке в C-Action:
#include "apdefap.h"
void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
#pragma code ("UseAdmin.dll")
#include "pwrt_api.h"
#pragma code ()

char login[20], password[10];

strcpy(login, GetTagChar("InpUser"));
strcpy(password, GetTagChar("InpPsw"));

if (PWRTSilentLogin(login,password)) {
SetTagBit("LoginState",1);
SetTagBit("LogoutState",0);
}

SetTagChar("InpPsw","");
SetTagBit("LoginState",0);
}
не могли бы дать комментарий к следующим строкам:
- "apdefap.h"-вот эта вещь откуда взялась?это название какой то картинки?или...
- (char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
- #pragma code ("UseAdmin.dll")
#include "pwrt_api.h"
#pragma code ()
- strcpy
- PWRTSilent
Заранее благодарю!!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 9:50 
Не в сети
Писатель со стажем

Зарегистрирован: Пн июл 06, 2009 9:37
Сообщения: 851
Откуда: Санкт-Петербург
судя по вашим вопросам на форуме, вам дали задание совсем не по вашему профилю, я бы над этим задумался

хотите разобраться - нужно много времени и желания (Step7, WinCC, скрипты С и VBS)
хотите использовать форум по справкам к функциям типа "strcpy" - ну тоже никто не запрещает (искали в гугле что-нибудь из вашего списка?)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 9:56 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
да, искала !!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 10:13 
Не в сети
Известный Писатель

Зарегистрирован: Ср май 26, 2010 10:00
Сообщения: 113
"apdefap.h"- создается самим winCC

(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)

lpszPictureName - Имя картинки на которой лежит кнопка
lpszObjectName - Имя самой кнопки
lpszPropertyName,nFlags - хз че такое
x,y - координаты

#pragma code ("UseAdmin.dll")
#include "pwrt_api.h"
#pragma code ()
Вызов библиотеки работающей с пользователями

strcpy - копирование строки

PWRTSilentLogin - процедура авторизации пользователя под логином login и паролем password которые беруться из тэгов InpUser и InpPsw

Кто же вас озадачил то разбором чужого проэкта?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 10:47 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Ой,спасибо Вам огромное!!!!! Да на работе задают делать всякуя ерунду, причем то в чем я не сображаю!!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 11:18 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Извините пожалуйста,а где посмотреть эти библиотеки:
#pragma code ("UseAdmin.dll")
#include "pwrt_api.h"
#pragma code ()


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 11:43 
Не в сети
Это точно не человек

Зарегистрирован: Чт фев 16, 2006 12:27
Сообщения: 7515
Откуда: Украина
CRFNZ писал(а):
Извините пожалуйста,а где посмотреть эти библиотеки:
#pragma code ("UseAdmin.dll")
#include "pwrt_api.h"
#pragma code ()

Извиняться ИМХО не обязательно.
Описания функций смотрите в ODK:
http://www.automation-drives.ru/as/download/doc/simatic_hmi/wincc/ODK6.zip.

P.S. Темы Вы уже научились без множественных восклицательных знаков называть, теперь постарайтесь поменьше их использовать в сообщениях:-)

P.P.S.
CRFNZ писал(а):
Да на работе задают делать всякуя ерунду, причем то в чем я не сображаю!!!!
И не называйте то, чем многие участники форума занимаются, ерундой:-) Могут обидеться.


Последний раз редактировалось Eugene1974 Чт дек 02, 2010 11:56, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 11:53 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
if (GetTagByte("AlarmFilter")==0)
return 16776960;
else
return 16776960;
}
Мне интересно откуда беруться эти значения 16776960, 16776960 они задаются где то ранее?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 12:17 
Не в сети
Известный Писатель

Зарегистрирован: Ср май 26, 2010 10:00
Сообщения: 113
Это цвета
16776960 или CO_MAGENTA - Розовый

только вот тут многое че непонятно
цвет возвращаться один и тот же при любом раскладе, так зачем тут вобще че то делать??? не пойму!!!

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите разобраться с кодом к кнопке в wincc,пожалуйста
СообщениеДобавлено: Чт дек 02, 2010 12:22 
Не в сети
Писатель со стажем

Зарегистрирован: Пн июл 06, 2009 9:37
Сообщения: 851
Откуда: Санкт-Петербург
ровно как и тут
CRFNZ писал(а):
....
if (PWRTSilentLogin(login,password)) {
SetTagBit("LoginState",1);
SetTagBit("LogoutState",0);
}

SetTagChar("InpPsw","");
SetTagBit("LoginState",0);
.....

странные коды =)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 12:43 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Мне дали готовый проект,который надо разобрать,так как документации и описания к нему не прилагается!!! так он вроде бы рабочий,по крайней мере меня в этом уверяют!!! Очень много картинок, тегов и скриптов к каждому объекту!!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 12:54 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Я извиняюсь,хотелось бы узнать, а откуда взяли,что значение 16776960-соответствует розовому,а где мне брать значения для других цветов?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 13:18 
Не в сети
Известный Писатель

Зарегистрирован: Ср май 26, 2010 10:00
Сообщения: 113
Код:
Красный      CO_RED
Темно-красный   CO_DKRED
Зеленый      CO_GREEN
Темно-зеленый   CO_DKGREEN
Синий      CO_BLUE
Темно-синий   CO_DKBLUE
Голубой (Cyan)   CO_CYAN
Темно-голубой   CO_DKCYAN
Желтый      CO_YELLOW
Темно-желтый   CO_DKYELLOW
Розовый (Magenta)CO_MAGENTA
Темно-розовый   CO_DKMAGENTA
Светло-серый   CO_LTGRAY
Серый      CO_DKGRAY
Черный      CO_BLACK
Белый      CO_WHITE


Используйте за место цифр лучше оригинальные названия.
например за место 16776960 используйте CO_MAGENTA

с цифрами сложнее, можно узнать цвет тока настроив Dinamic Dialog а потом конвертнув в Си.
Может быть кто то знает более простой и быстрый способ, но увы не я.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 14:13 
Не в сети
Это точно не человек

Зарегистрирован: Чт фев 16, 2006 12:27
Сообщения: 7515
Откуда: Украина
WinCC Information System->Working with WinCC->ANSI-C for Creating Functions and Actions->ANSI-C function descriptions->Lists->Color chart.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 14:13 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
У меня есть картинка,которая называется "Печать суточных отчетов по дебитам" на окне 14 кнопок'ГЗУ'. Так вот у каждой такой кнопки очень страшный код:
#include "apdefap.h"
void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)
{
char *p1, *p2;

p1=SysMalloc(27);
sprintf(p1,"%02d-%02d-%02d 00:00:00:000000",
GetTagWord("print_Y1")+2000,GetTagWord("print_M1"),GetTagWord("print_D1"));
SetTagChar("print_1", p1);
p2=SysMalloc(27);
sprintf(p2,"%02d-%02d-%02d 23:59:59:000000",
GetTagWord("print_Y1")+2000,GetTagWord("print_M1"),GetTagWord("print_D1"));
SetTagChar("print_2", p2);
RPTJobPrint("printGZU1");
}
мне не ясно что означают следующие строки:
char *p1, *p2;

p1=SysMalloc(27);
sprintf(p1,"%02d-%02d-%02d 00:00:00:000000",

SetTagChar("print_1", p1);
RPTJobPrint("printGZU1");


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 14:21 
Не в сети
Это точно не человек

Зарегистрирован: Чт фев 16, 2006 12:27
Сообщения: 7515
Откуда: Украина
Уважаемая CRFNZ! Какие у Вас отношения с языком Си и с программированием в целом?

char *p1, *p2;
Объявляется 2 типизированных указателя на массивы символов (строки).

p1=SysMalloc(27);
Выделяется память, указатель p1 содержит адрес выделенной памяти.

sprintf(p1,"%02d-%02d-%02d 00:00:00:000000",
Формирование строки по шаблону.

SetTagChar("print_1", p1);
Тегу WinCC print_1 присваивается значение сформированной строки.

RPTJobPrint("printGZU1");[/quote]
Запуск печати рапорта WinCC (подробности - см. ODK).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 14:32 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Спасибо,дорогой Eugene 1974!!! С программированием у меня все плохо,а язык Cи начала изучать сегодня!!!!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 14:45 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Извините,хочу узнать кое что!!! Есть у меня окно Static/Text в нем отображается день ,месяц год и код к нему такой:
#include "apdefap.h"
char* _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
time_t timer;
struct tm *ptm;
char *p;

time(&timer);
ptm=localtime(&timer);
p=SysMalloc(11);
sprintf(p,"%02d/%02d/%02d",ptm->tm_mday,ptm->tm_mon+1,ptm->tm_year+1900);
SetTagByte("Date_D",ptm->tm_mday);
SetTagByte("Date_M",ptm->tm_mon+1);
SetTagWord("Date_Y",ptm->tm_year+1900);
return(p);
}

так вот когда проект в режиме run, то в этом поле отражается сегодняшнее число!!! а когда выходишь из режима исполнения, то 10/10/2004-те время разработки!!! Можно его поменять?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 15:22 
Не в сети
Известный Писатель

Зарегистрирован: Пн авг 08, 2005 9:54
Сообщения: 337
Откуда: Украина, ПАО "НКМЗ"
CRFNZ писал(а):
Извините,хочу узнать кое что!!! Есть у меня окно Static/Text в нем отображается день ,месяц год и код к нему такой:
...
так вот когда проект в режиме run, то в этом поле отражается сегодняшнее число!!! а когда выходишь из режима исполнения, то 10/10/2004-те время разработки!!! Можно его поменять?

чувствую тема будет большой... ;-)
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт дек 02, 2010 15:48 
Не в сети
Новый писатель

Зарегистрирован: Пн ноя 29, 2010 14:01
Сообщения: 46
Откуда: Караганда
Люди,спасибо Всем за помощь и за то, что Вы отвечаете!!!! Ну я правда новичок всего этого!!! Мне правда очень стыдно,что я незнаю,на Ваш взгляд,очень элементарных вещей!!!! )))))))


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 25 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


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

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


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

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group