30 / 23 / 8
Регистрация: 15.07.2011
Сообщений: 115
1

Скрипты для WinCC

23.05.2012, 09:13. Показов 71041. Ответов 6

Выкладываю скрипты для WinCC (SCADA система SIEMENS), которые недавно написал, может кому пригодится.

script #1: выводит всплывающее окно 'О программе'
C
1
2
3
4
5
6
7
8
9
#pragma code("user32.dll")
int MessageBox(HWND,LPTSTR,LPTSTR,int);
HWND GetForegroundWindow();
void About()
{
    MessageBox(GetForegroundWindow(),
    "Текст"
    ,"О программе",0);
}


script #2: выход из программы с запросом подтверждения пользователя
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#pragma code("user32.dll")
int MessageBox(HWND,LPTSTR,LPTSTR,int);
HWND GetForegroundWindow();
#define MB_YESNO 0x00000004L
#define MB_ICONQUESTION 0x00000020L
#define MB_SETFOREGROUND 0x00010000L
#define IDYES 6
#define IDNO 7
void ExitProgram()
{
    int res;
    res=MessageBox(GetForegroundWindow(),
    "Вы действительно хотите выйти из WinCC?"
    ,"Подтверждение",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND);
    if(res==IDYES){
        ExitWinCC ();
    }   
}


script #3: изменение цвета индикатора
изменяет цвет индикатора (любого элемента управления: круга, прямоугольника и т.п.) в зависимости от значения тэга
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#define RGB(r,g,b)          ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))
 
void UpdateTemp()
{
    float t=0.0f;
    t=GetTagFloat("Temp");  //Return-Type: float 
    if(t>1200.0f){
        SetBackColor("furnace.Pdl","TempIndicator",RGB(255,0,0));   //Return-Type: BOOL 
        }
    else{
        SetBackColor("furnace.Pdl","TempIndicator",RGB(0,255,0));
        }
}


script #4: развернуть окно на весь экран
позволяет развернуть окно на весь экран, а также изменить текст заголовка окна
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma code("user32.dll");
HWND GetForegroundWindow();
void ShowWindow(HWND,int);
void SetWindowText(HWND,char*);
 
#define SW_MAXIMIZE 3
void WindowMax()
{
    HWND hWnd;
    hWnd=GetForegroundWindow();
    ShowWindow(hWnd,SW_MAXIMIZE);
    SetWindowText(hWnd,"Текст заголовка окна");
    SetLanguage(0x0419);
}
5
Вложения
Тип файла: pdf Руководство по конфигурации.pdf (3.67 Мб, 1244 просмотров)
Тип файла: pdf WinCC_V6_r.pdf (4.84 Мб, 1048 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2012, 09:13
Ответы с готовыми решениями:

Скрипт для чтения рецептов в WinCC
Доброго времени суток! я полный нуббас в winCC flexible и в скриптах, поэтому прошу у вас помощи....

WinCC. Скрипт для управления двигателя
Здравствуйте! У меня в Степ 7 есть программа для управления ручного и автоматического двигателя....

Объяснить работу скрипта для WinCC
Здравствуйте всем!Я только пытаюсь обучаться читать скрипты WinCC.Просьба в подробном описании...

WinCC 7.0. Возможность выбора рецептур из User Archive для одного объекта
Подскажите а если необходимо сделать чтобы один рецепт был на 2 объекта(мешалки) но при этом на...

6
10 / 9 / 1
Регистрация: 28.10.2011
Сообщений: 138
26.05.2012, 03:01 2
Где то видел такое в мануалах, но всё равно спасибо, скопипастил
0
magirus
26.05.2012, 19:11
  #3

Не по теме:

эмм, а разве это не делается стандартными средствами СС?
(попробую в понедельник проверить)

0
30 / 23 / 8
Регистрация: 15.07.2011
Сообщений: 115
05.06.2012, 18:51  [ТС] 4
Цитата Сообщение от magirus Посмотреть сообщение

Не по теме:

эмм, а разве это не делается стандартными средствами СС?
(попробую в понедельник проверить)

как изменить текст заголовка окна стандатрными средствами - я не нашел
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
28028 / 15757 / 977
Регистрация: 15.09.2009
Сообщений: 67,772
Записей в блоге: 78
05.06.2012, 18:56 5
стандартными похоже нельзя, погорячился я...
Код
HWND Handle = NULL;

Handle = FindWindow("PDLRTisAliveAndWaitsForYou", NULL);
if(Handle != NULL)
     {
     SetWindowText(Handle, "My SCADA");
     }
0
30 / 23 / 8
Регистрация: 15.07.2011
Сообщений: 115
05.06.2012, 22:44  [ТС] 6
Цитата Сообщение от magirus Посмотреть сообщение
стандартными похоже нельзя, погорячился я...
Код
HWND Handle = NULL;

Handle = FindWindow("PDLRTisAliveAndWaitsForYou", NULL);
if(Handle != NULL)
     {
     SetWindowText(Handle, "My SCADA");
     }
кстати да, этот способ получше. У моего есть недостаток - привязка к активному окну, т.е. если в момент события окно SCADA-системы свернуто, будет изменен заголовок другого окна, которое в данный момент активно. Я один раз оставил на пару минут SCADA систему свернутой, и все окна открытых приложений обзавелись заголовком "WinCC Vadim-Tagil Edition"
0
0 / 0 / 0
Регистрация: 14.01.2016
Сообщений: 1
02.12.2016, 19:18 7
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
//Для wincc когда нужно свернуть окно.  
//Создаем функцию (Minimiz к примеру ) и вешаем на кнопку  
 
//////////////////////////////////////////////////////////////   
void Minimiz()  
{  
       #pragma code("user32.dll");  
       HWND FindWindow(char*,char*);  
       HWND GetForegroundWindow();  
       void ShowWindow(HWND,int);   
 
//SW_MINIMIZE 6  
//Сворачиваем текущее окно.   
       ShowWindow(GetForegroundWindow(),6);   
 
// SW_HIDE = 0;  
// SW_SHOW = 5;  
// Показываем панель управления т.к. при full scrin   она прячется   
       ShowWindow(FindWindow("Shell_TrayWnd",NULL), 5);  
}   
/////////////////////////////////////////////////////////////  
//Если нужно зайти под пользователем 
//Вешаем Функцию на загрузку основного окна, как вариант 
//Если делать не через входную переменную то может не принимать логин на русском  
// из за разности кодировок между средой и компилятором. Что то вроде этого.  
void AutoLogon(char* Login, char* Pass)  
{  
      #pragma code ("UseAdmin.DLL");  
       void PWRTSilentLogin(char*,char*);  
       PWRTSilentLogin(Login,Pass);  
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2016, 19:18

Как скрипты видят другие скрипты, которые были объявлены ранее?
Может кто-нибудь объяснить как реализовано то, что у нас скрипт, который был заинклуден в html...

Скрипты для...
Помогите с скриптами для: 1)проверки - по файлу логинов паролей 2)гостевой книги - одно...

Баннерные скрипты, скрипты посещаемости
Всем привет,хотелось бы узнать как организовать баннерную систему у себя на сайте,такую чтобы...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.