業(yè)務銷售;竭誠為你服務.
公司主營西門子PLC模塊,數(shù)控伺服,觸摸屏等系列產(chǎn)品,產(chǎn)品*,質保一年
![]() |
參考價 | ¥670 |
訂貨量 | 1 |
更新時間:2019-03-30 13:27:10瀏覽次數(shù):365
聯(lián)系我們時請說明是化工儀器網(wǎng)上看到的信息,謝謝!
西門子S7-4006ES7960-1AB04-0XA0服務
敬請放心購買!量大價優(yōu),歡迎選購!
編程手冊,08/2018, 6FC5397-1DP40-6RA2 223
圖形單元和邏輯單元
7.3表格描述(柵格)
示例
//G(grid1/0/5/-1,2)
//G(grid1/0/5/,1)
//G(grid1/0/5)
列標題行隱藏并有2個固定列
列標題行顯示并有1個固定列
列標題行顯示并且無固定列
7.3.2 定義列
說明
為表格(柵格)使用帶下標的變量非常重要。索引號碼對于帶有一個或者多個索引的PLC或
者NC變量比較重要。
您可以對表格中顯示的值在由屬性確定的權限范圍和可能己設定的極限范圍內(nèi)直接加以編
輯。
編程
句法: (類型/極限值/空/長文本列標題/屬性靡助圖形/ 或用戶變量列寬/偏移1偏移2、偏移3) 另見擴展配置句法(頁45)。
說明: 定義列
SINUMERIK Integrate Run MyScreens (BE2)
224 編程手冊,08/2018, 6FC5397-1DP40-6RA2
圖形單元和邏輯單元
73表格描述(柵格)
參數(shù): 和變量類似
類型 數(shù)據(jù)類型
極限值 極限值,極限值
長文本,列標題
屬性
幫助圖形
或者用戶變量 作為變量在雙引號內(nèi)給出PLC或者NC變量。
列寬 參數(shù),單位像素
偏移 在分配的偏移參數(shù)內(nèi)規(guī)定步寬(在該步寬中各個 索引應指數(shù)運算),以填寫該列。 ?偏移1:第1個索引的步寬 ?偏移2:第2個索引的步寬 ?偏移3:第3個索引的步寬
文本文件的列標題
列標題可以規(guī)定為文本或者文本號H($8xxxx),并且同樣無法顯示。
改變列屬性
可動態(tài)改變的(可寫)的列屬性稱為:
?極限值(、)
?列標題(st)
?屬性(wr、ac 和 li)
?幫助圖形(hlp)
通過定義行中的變量命名符和列索引(以1開始)改變列屬性。
示例:VAR1[1].st="Spalte 1"
對于列定義,可以規(guī)定屬性wr、ac和li。
另見
Load Grid (LG)(頁185)
SINUMERIK Integrate Run MyScreens (BE2)
編程手冊,08/2018, 6FC5397-1DP40-6RA2 225
圖形單元和邏輯單元
7.3表格描述(柵格)
7.3.3 表格中的焦點控制(柵格)
說明
通過列和行屬性可以在表格中設置和確定聚焦:
?名稱Row
?名稱Col
編程
表格的每行都具有屬性Val和Vld。
對于行屬性寫入和讀出,除了定義行中的變量命名符之外,還規(guī)定一個行索引和列索引
句法: 名稱[行索引,列索弓l].Vld或者 名稱[行索引,列索引]
說明 Val屬性
句法 名稱[行索引,列索弓l].Vld
說明 Vld屬性
示例
Var1[2,3].val=1.203
如果沒有規(guī)定行索引和列索引,則適用于聚焦行的索引,即:
Varl.Row =2
Var1.Col=3
Var1.val=1.203
SINUMERIK Integrate Run MyScreens (BE2)
226 編程手冊,08/2018, 6FC5397-1DP40-6RA2
圖形單元和邏輯單元
7.4自定義小部件
7.4 自定義小部件
7.4.1 自定義小部件
說明
通過自定義小部件,可以在對話框內(nèi)設計用戶的顯示部件。
選件
使用自定義小部件功能額外需要下列選件:
“SINUMERIK Integrate Run MyHMI /3GL" (6FC5800-0AP60-0YB0)
編程
定義: DEF (名稱)
句法: (W///"","(庫名稱).(類別名稱)''llllla,b,c,d)
說明: W 自定義小部件
參數(shù): 名稱 自定義小部件的名稱,可選擇
庫名稱 可選擇,dll (Windows)的名稱或so (Linux) 庫文件的名稱
類別名稱 可選擇,是前面指出的庫的類別功能的名稱
a, b, c, d 小部件的位置和大小
示例
在對話框配置文件中,可以按照以下自定義小部件:
DEF Cus =
(W///nn,"slestestcustomwidget.SlEsTestCustomWidgetn/////
20,20,250,100);
SINUMERIK Integrate Run MyScreens (BE2)
編程手冊,08/2018, 6FC5397-1DP40-6RA2 227
圖形單元和邏輯單元
7.4自定義小部件
7.4.2 自定義小部件庫的結構
說明
自定義小部件庫基本上都包含了一個定義的類別,在對話框配置文件中,應在庫名稱
后該類別的名稱。Run MyScreens根據(jù)庫名稱訪問同名dll文件,例如:
slestestcustomwidget.dll
編程
dll文件的類別定義應為:
#define SLESTESTCUSTOMWIDGET_EXPORT Q_DECL_EXPORT
class SLESTESTCUSTOMWIDGET_EXPORT SlEsTestCustomWidget : public QWidget
{
Q_OBJECT
public slots:
bool serialize(const QString& szFilePath, bool bIsStoring);
}
7.4.3 自定義小部件接口的結構
說明
自定義小部件的顯示需要在庫中増加一個接口。該接口包含了 Run MyScreens初始化自
定義小部件的宏定義。接口在cpp文件中定義。文件名稱可以定義,例如:
sleswidgetfactory.cpp
編程
可以按照下面的定義接口:
#Include "slestestcustomwidget.h" ;將相關自定義小部件的標題文件添加到文件開頭
//Makros ;保持宏定義
SINUMERIK Integrate Run MyScreens (BE2)
228 編程手冊,08/2018, 6FC5397-1DP40-6RA2
圖形單元和邏輯單元
7.4自定義小部件
WIDGET CL EXPORT(SlEsTestCustomWi dget) ;在文件末尾申明相關的自定義小部件
示例
自定義小部件文件“sleswidgetfactory.cpp"的內(nèi)容,類別名稱為
“SlEsTestCustomWidget":
#Include <Qt/qglobal.h>
#Include "slestestcustomwidget.h"
///////////////////////////////////////////////////////////////////////////
// MAKROS FOR PLUGIN DLL-EXPORT - DO NOT CHANGE
///////////////////////////////////////////////////////////////////////////
#Ifndef Q_EXTERN_C
#Ifdef cplusplus
#define Q_EXTERN_C extern "C"
#Else
#define Q_EXTERN_C extern
#Endif
#Endif
#define SL_ES_FCT_NAME(PLUGIN) sl_es_create_ ##PLUGIN
#define SL_ES_CUSTOM_WIDGET_PLUGIN_INSTANTIATE( IMPLEMENTATION , PARAM)
{
IMPLEMENTATION *i = new PARAM;
return i;
}
#Ifdef Q_WS_WIN
# ifdef Q_CC_BOR
# define EXPORT_SL_ES_CUSTOM_WIDGET_PLUGIN(PLUGIN,PARAM)
Q_EXTERN_C __declspec(dllexport) void*
一stdcall SL_ES_FCT_NAME(PLUGIN) (QWidget* pParent)
SL_ES_CUSTOM_WIDGET_PLUGIN_INSTANTIATE( PLUGIN,PARAM )
# else
# define EXPORT_SL_ES_CUSTOM_WIDGET_PLUGIN(PLUGIN,PARAM)
Q_EXTERN_C 一declspec(dllexport) void* SL_ES_FCT_NAME(PLUGIN)
(QWidget* pParent)
SL_ES_CUSTOM_WIDGET_PLUGIN_INSTANTIATE( PLUGIN,PARAM )
# endif
SINUMERIK Integrate Run MyScreens (BE2)
編程手冊,08/2018, 6FC5397-1DP40-6RA2
229
圖形單元和邏輯單元
7.4自定義小部件
#Else
# define EXPORT_SL_ES_CUSTOM_WIDGET_PLUGIN(PLUGIN,PARAM)
Q_EXTERN_C void* SL_ES_FCT_NAME(PLUGIN) (QWidget* pParent)
SL_ES_CUSTOM_WIDGET_PLUGIN_INSTANTIATE( PLUGIN,PARAM )
#Endif
#define WIDGET_CL_EXPORT(CLNAME)
EXPORT_SL_ES_CUSTOM_WIDGET_PLUGIN(CLNAME,CLNAME(pParent))
///////////////////////////////////////////////////////////////////////////
// FOR OEM USER - please declare here your widget classes for export
///////////////////////////////////////////////////////////////////////////
WIDGET_CL_EXPORT(SlEsTestCustomWidget)
7.4.4 自定義小部件與對話框的互動-自動數(shù)據(jù)交換
自定義小部件與對話框相互影響并能顯示或處理值
條件
自動數(shù)據(jù)交換會在以下條件下進行:
條件 方向
打開或反編譯對話框時 對話框—自定義小部件
執(zhí)行用于生成循環(huán)調(diào)用的GC指令時 自定義小部件—對話框
編程
針對互動,以下定義都是必須的:
對話框設計擴展
定義: DEF (變量)
句法: ((類型)/5/"","(變量;',Mn/wr2/)
變量類型: 類型 帶任意數(shù)據(jù)類型(無W)的輸入?yún)^(qū)(無柵格 或轉換)
SINUMERIK Integrate Run MyScreens (BE2)
230 編程手冊,08/2018, 6FC5397-1DP40-6RA2
圖形單元和邏輯單元
7.4自定義小部件
參數(shù): 變量 用于數(shù)據(jù)交換的變量的任意名稱
輸入: wr2 讀和寫
示例
DEF CUSVAR1 = (R//5/"","CUSVAR1",""/wr2/)
類定義擴展
在自定義小部件的類定義中必須創(chuàng)建QProperty,其名稱應與在對話框設計中選擇的變量
名稱*,例如:
Q PROPERTY(double CUSVAR1 READ cusVarl WRITE setCusVarl);
示例
dll文件的類定義應為:
#define SLESTESTCUSTOMWIDGET_EXPORT Q_DECL_EXPORT
class SLESTESTCUSTOMWIDGET_EXPORT SlEsTestCustomWidget : public QWidget
{
Q_OBJECT
Q_PROPERTY(double CUSVAR1 READ cusVar1 WRITE setCusVar1);
}
7.4.5 自定義小部件與對話框的互動-手動數(shù)據(jù)交換
除自動數(shù)據(jù)交換外,也可進行手動數(shù)據(jù)交換。該交換是動態(tài)進行的,即在對話框運行期間
進行??蓤?zhí)行以下操作:
?可讀取和寫入自定義小部件的屬性。
?可從Run MyScreens配置中調(diào)用自定義小部件的。
?可以響應一個特定的自定義小部件并借此在Run MyScreens配置中調(diào)用子程序
(SUB)。
SINUMERIK Integrate Run MyScreens (BE2)
編程手冊,08/2018, 6FC5397-1DP40-6RA2 231
圖形單元和邏輯單元
7.4自定義小部件
7.4.5.1
說明
編程
示例
232
讀取和寫入屬性
Run MyScreens 配置中提供了 ReadCWProperties 和 WriteCWProperties 函數(shù)用于讀取
和寫入自定義小部件的屬性。
句法: ReadCWProperty (“變量名稱",“屬性名稱")
說明: 讀取自定義小部件的屬性
參數(shù): 變量名稱 分配到一個自定義小部件的對話框變量的名稱
屬性名稱 待讀取的自定義小部件屬性的名稱
返回值: 自定義小部件屬性的當前值
句法: WriteCWProperty (“變量名稱",“屬性名稱",“值"
說明: 寫入CustomWidget的屬性
參數(shù): 變量名稱 分配到一個自定義小部件的對話框變量的名稱
屬性名稱 待寫入的自定義小部件屬性的名稱
值 應在CustomWidget屬性中寫入的值
示例1:
讀取包含對話框變量“MyCWVarl" 的自定義小部件屬性“MyStringVar"并在寄存器7中分
配值。
SINUMERIK Integrate Run MyScreens (BE2)
編程手冊,08/2018, 6FC5397-1DP40-6RA2
圖形單元和邏輯單元
7.4自定義小部件
CustomWidget 類聲明:
class SLESTESTCUSTOMWIDGET_EXPORT SlEsTestCustomWidget : public QWidget
{
Q_OBJECT
Q_PROPERTY(QString MyStringVar
READ myStringVar
WRITE setMyStringVar);
對話框配置:
DEF MyCWVar1 = (W///,nslestestcustomwidget.SlEsTestCustomWidgetn)
PRESS(VSl)
REG[7]=ReadCWProperty("MyCWVar1", "MyStringVar")
END PRESS
示例2:
在包含對話框變量“MyCWVarl" 的CustomWidget屬性“MyRea丨Var"中寫入計算結果 “3
+ sin(123.456)"。
CustomWidget 類聲明:
class SLESTESTCUSTOMWIDGET_EXPORT SlEsTestCustomWidget : public QWidget
{
Q_OBJECT
Q_PROPERTY(double MyRealVar
READ myRealVar
WRITE setMyRealVar);
對話框配置:
DEF MyCWVar1 = (W///,"slestestcustomwidget.SlEsTestCustomWidgetn)
PRESS(VS1)
WriteCWProperty("MyCWVar1", "MyRealVar", 3 + sin(123.456))
END_PRESS
7.4.5.2 執(zhí)行自定義小部件的
說明
Run MyScreens配置中提供了 CallCWMethod函數(shù)用于執(zhí)行自定義小部件的。
SINUMERIK Integrate Run MyScreens (BE2)
編程手冊,08/2018, 6FC5397-1DP40-6RA2 233
圖形單元和邏輯單元
7.4自定義小部件
待調(diào)用的自定義小部件多可以有10個傳輸參數(shù)。
支持以下傳輸參數(shù)數(shù)據(jù)格式:
? boo丨
? uint
? int
? double
? QString
? QByteArray
編程
句法: CallCWMethod (“變量名稱",“名稱[自變量0][自變量 1.…[自變量9]")
說明: 調(diào)用CustomWidget
參數(shù): 變量名稱 分配到一個自定義小部件的對話框變量的名稱
名稱 待調(diào)用的自定義小部件的名稱
自變量0-9 CustomWidget的傳輸參數(shù) 不支持的數(shù)據(jù)格式:參見前面的 說明:傳輸參數(shù)將始終傳輸“ByVal",即始終只 傳輸值,不傳輸變量。
返回值: 自定義小部件的返回值 支持以下傳輸參數(shù)數(shù)據(jù)格式: ? void ? boo丨 ? uint ? int ? double ? QString ? QByteArray 提示:即使自定義小部件的返回值的數(shù)據(jù)格式為“void",也必 須將該值分配給一個變量。
234
SINUMERIK Integrate Run MyScreens (BE2)
編程手冊,08/2018, 6FC5397-1DP40-6RA2
圖形單元和邏輯單元
7.4自定義小部件
示例
CustomWidget 類聲明:
class SLESTESTCUSTOMWIDGET_EXPORT SlEsTestCustomWidget : public QWidget
{
Q_OBJECT
public slots:
void myFunc1(int nValue, const QString& szString, double dValue);
對話框配置:
DEF MyCWVar1 = (W///,nslestestcustomwidget.SlEsTestCustomWidgetn)
DEF MyStringVar1 = (S)
DEF MyRealVar = (R)
PRESS(VS3)
REG[9] = CallCWMethod("MyCWVar1", "myFuncl", 1+7, MyStringVarl, sin(MyRealVar)—
8)
END PRESS
提示
自定義小部件必須執(zhí)行“serialize"。采用該可以將自定義小部件的內(nèi)部數(shù)據(jù)
寫入的文件中或重新創(chuàng)建。當打開的“"屏幕切換至其他操作區(qū)域時然后再次返回至
該屏幕時,該非常有必要。否則的話,內(nèi)部數(shù)據(jù)在重新顯示時會丟失。
句法: public slots: bool serialize(const QString& szFilePath,bool bIsStoring);
說明: 內(nèi)部數(shù)據(jù)和狀態(tài)從文件中讀出或寫入文件中
參數(shù): szFilePath 從其中讀出或寫入自定義小部件的內(nèi)部數(shù)據(jù)和狀 態(tài)、帶有完整路徑說明的文件名稱。 必要時,自定義小部件必須自行創(chuàng)建該文件。
bIsStoring TRUE =寫入 FALSE =讀出