QuickScript — различия между версиями
Admin (обсуждение | вклад) (→Размер текста скрипта) |
Admin (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
[[QuickScript]] (для InTouch) | [[QuickScript]] (для InTouch) | ||
− | '''[[QuickScript .NET]] (для Application Server)''' | + | '''[[QuickScript .NET]] (для Application Server)''' и работа с [[Script Function Library]] |
Версия 14:26, 25 октября 2013
QuickScript (для InTouch)
QuickScript .NET (для Application Server) и работа с Script Function Library
Содержание
ОГРАНИЧЕНИЯ
Размер текста скрипта
- FAQ: What are the size limitations for InTouch scripts? https://wdn.wonderware.com/sites/WDN/Lists/Solution%20Central%20Q%20and%20A/display.aspx?List=a9ff589d-c336-4bcf-807f-e3260856359a&ID=2270
InTouch scripts can contain a maximum of 22K characters including spaces and have a 32K physical size limit.
Resolution Description:
- The scripting engine has a size limit based on:
- A 32K physical size limitation imposed by the OS; and
- An approx. 22K expression (characters incl. spaces) buffer.
If either limit is exceeded, this will result in the "Exceeded Expression Buffer" msg. Or "Not enough room in expression buffer"
Источники:
- https://wdnresource.wonderware.com/support/kbcd/html/1/t001148.htm
- https://wdn.wonderware.com/sites/WDN/Lists/Solution%20Central%20Q%20and%20A/display.aspx?List=a9ff589d-c336-4bcf-807f-e3260856359a&ID=2270
- https://wdn.wonderware.com/sites/WDN/Lists/Solution%20Central%20Q%20and%20A/display.aspx?List=a9ff589d-c336-4bcf-807f-e3260856359a&ID=3338
ActiveX
Tech Note 242 Creating ActiveX Controls for InTouch Using Microsoft Visual Basic
Передача данных из InTouch в Open|MS Office
Для передачи данных из InTouch в Open|MS Office:
Вариант 1: скриптами InTouch записывать данные в файл .CSV, а затем открывать в MS Office или Open Office Для этого используется функция: FileWriteFields (filename, offset, starttag, numberoffields); Например так: FileWriteFields("c:\set.csv",0,"RecipeTag1",4);
Вариант 2: по протоколу DDE получить данные с InTouch в открытый в Open Office файл Здесь можно посмотреть как это реализуется со стороны OpenOffice: http://wiki.i-rs.ru/wiki/RU/kb/00000641 Например так: в пустой ячейке написать (при запущенном WindowViewer):
- Для OpenOffice Cals: =DDE("view";"tagname";"$ApplicationVersion";0)
- Для MS Office Excel: =VIEW|Tagname!'$ApplicationVersion'
Вариант 3: написать свой .Net или ActiveX объект для экспорта
Общие вопросы
Вывод в файл csv
FileWriteFields (filename, offset, starttag, numberoffields); FileWriteFields("c:\set.csv",0,"RecipeTag1",4);
Получения координат курсора
- Способ 1: использовать функцию GetCursorPosition("Xtag", "Ytag", UseDesktop) из библиотеки CursorFn.dll.Для это необходимо:
- в InTouch приложение импортировать указанную библиотеку (Поместить файл CursorFn.dll, CursorFN.wdf and CursorFn.hlp в директорию с InTouch и переоткрыть InTouch приложение)
- создать в InTouch приложении три тега типа Memory Integer Xtag, Ytag, UseDesktop
- в скрипте вызвать функцию GetCursorPosition("Xtag", "Ytag", UseDesktop)
- передать теги Xtag, Ytag в AA символ использую Custom Properties символа
- Способ 2: использовать .NET библиотеку System.Windows.Forms
- импортировать библиотеку в IDE: Galaxy-Import-Script Function Libtrary выбрать файл System.Windows.Forms.dll (из папки: \Windows\Microsoft.NET\Framework\v2.0…)
- в скрипте использовать конструкции типа Integer:
- System.Windows.Forms.Cursor.Position.X и System.Windows.Forms.Cursor.Position.Y
- или System.Windows.Forms.Control.MousePosition.X и System.Windows.Forms.Control.MousePosition.Y
Способ 1 приведен в документации Wonderware Tech Note 463 InTouch® Add-On Functions Master Index (см. приложение к письму)
Работа с ListBox
см встроенную справку: Getting or Setting the Value of a List Item Use the wcGetItemData() function to find the integer value associated with the list item identified by the item index. Use the wcSetItemData() function to assign an integer value to the item in the list specified by item index. This assigns a number to a string.