Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
914dc05d
Commit
914dc05d
authored
Mar 27, 2015
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Wb classes with embeded plc code added
parent
eabf682a
Changes
29
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
2863 additions
and
108 deletions
+2863
-108
src/lib/rt/src/rt_plc_macro_io.h
src/lib/rt/src/rt_plc_macro_io.h
+81
-0
src/wbl/pwrb/src/pwrb_c_cstorefa.wb_load
src/wbl/pwrb/src/pwrb_c_cstorefa.wb_load
+147
-0
src/wbl/pwrb/src/pwrb_c_cstorefi.wb_load
src/wbl/pwrb/src/pwrb_c_cstorefi.wb_load
+147
-0
src/wbl/pwrb/src/pwrb_c_getrefa.wb_load
src/wbl/pwrb/src/pwrb_c_getrefa.wb_load
+130
-0
src/wbl/pwrb/src/pwrb_c_getrefd.wb_load
src/wbl/pwrb/src/pwrb_c_getrefd.wb_load
+130
-0
src/wbl/pwrb/src/pwrb_c_getrefi.wb_load
src/wbl/pwrb/src/pwrb_c_getrefi.wb_load
+130
-0
src/wbl/pwrb/src/pwrb_c_plcembed.wb_load
src/wbl/pwrb/src/pwrb_c_plcembed.wb_load
+113
-0
src/wbl/pwrb/src/pwrb_c_plcpgm.wb_load
src/wbl/pwrb/src/pwrb_c_plcpgm.wb_load
+9
-0
src/wbl/pwrb/src/pwrb_c_resrefd.wb_load
src/wbl/pwrb/src/pwrb_c_resrefd.wb_load
+131
-0
src/wbl/pwrb/src/pwrb_c_setrefd.wb_load
src/wbl/pwrb/src/pwrb_c_setrefd.wb_load
+131
-0
src/wbl/pwrb/src/pwrb_c_storefa.wb_load
src/wbl/pwrb/src/pwrb_c_storefa.wb_load
+131
-0
src/wbl/pwrb/src/pwrb_c_storefd.wb_load
src/wbl/pwrb/src/pwrb_c_storefd.wb_load
+131
-0
src/wbl/pwrb/src/pwrb_c_storefi.wb_load
src/wbl/pwrb/src/pwrb_c_storefi.wb_load
+130
-0
src/wbl/pwrs/src/pwrs_c_classdef.wb_load
src/wbl/pwrs/src/pwrs_c_classdef.wb_load
+7
-0
wb/exp/wb/src/pwr_wb_palette.cnf
wb/exp/wb/src/pwr_wb_palette.cnf
+10
-0
wb/lib/wb/src/wb_c_classdef.cpp
wb/lib/wb/src/wb_c_classdef.cpp
+108
-65
wb/lib/wb/src/wb_c_plcembed.cpp
wb/lib/wb/src/wb_c_plcembed.cpp
+106
-0
wb/lib/wb/src/wb_gcg.cpp
wb/lib/wb/src/wb_gcg.cpp
+891
-19
wb/lib/wb/src/wb_gcg.h
wb/lib/wb/src/wb_gcg.h
+3
-0
wb/lib/wb/src/wb_gobj.cpp
wb/lib/wb/src/wb_gobj.cpp
+55
-3
wb/lib/wb/src/wb_i_base_methods.cpp
wb/lib/wb/src/wb_i_base_methods.cpp
+2
-0
wb/lib/wb/src/wb_ldh.cpp
wb/lib/wb/src/wb_ldh.cpp
+26
-0
wb/lib/wb/src/wb_ldh.h
wb/lib/wb/src/wb_ldh.h
+6
-0
wb/lib/wb/src/wb_wb.meth
wb/lib/wb/src/wb_wb.meth
+1
-0
wb/lib/wb/src/wb_wnav_command.cpp
wb/lib/wb/src/wb_wnav_command.cpp
+33
-1
xtt/lib/xtt/gtk/xtt_trace_gtk.cpp
xtt/lib/xtt/gtk/xtt_trace_gtk.cpp
+1
-1
xtt/lib/xtt/src/xtt_c_object.cpp
xtt/lib/xtt/src/xtt_c_object.cpp
+41
-11
xtt/lib/xtt/src/xtt_trace.cpp
xtt/lib/xtt/src/xtt_trace.cpp
+31
-7
xtt/lib/xtt/src/xtt_trace.h
xtt/lib/xtt/src/xtt_trace.h
+1
-1
No files found.
src/lib/rt/src/rt_plc_macro_io.h
View file @
914dc05d
...
...
@@ -881,3 +881,84 @@
*/
#define CStoDataRefv_exec(obj,in,cond) \
if ( cond) memcpy( &obj->ActualValue, &(in), sizeof(pwr_tDataRef));
/*_*
GetRefD
Get digital value by reference
@aref getrefd GetRefD
*/
#define GetRefD_exec(obj,value) \
obj->Status = value;
/*_*
GetRefI
Get integer value by reference
@aref getrefi GetRefI
*/
#define GetRefI_exec(obj,value) \
obj->ActVal = value;
/*_*
GetRefA
Get analog value by reference
@aref getrefa GetRefA
*/
#define GetRefA_exec(obj,value) \
obj->ActVal = value;
/*_*
StoRefD
Store digital value by reference
@aref storefd StoRefD
*/
#define StoRefD_exec(out,in) \
out = in;
/*_*
SetRefD
Set digital value by reference
@aref setrefd SetRefD
*/
#define SetRefD_exec(out,cond) \
if ( cond) out = true;
/*_*
ResRefD
Reset digital value by reference
@aref resrefd ResRefD
*/
#define ResRefD_exec(out,cond) \
if ( cond) out = false;
/*_*
StoRefI
Store integer value by reference
@aref storefi StoRefI
*/
#define StoRefI_exec(out,in) \
out = in;
/*_*
CStoRefI
Conditionally store integer value by reference
@aref dstorefi DStoRefI
*/
#define CStoRefI_exec(out,in,cond) \
if ( cond) out = in;
/*_*
StoRefA
Store analog value by reference
@aref storefa StoRefA
*/
#define StoRefA_exec(out,in) \
out = in;
/*_*
CStoRefA
Conditionally store analog value by reference
@aref cstorefa CStoRefA
*/
#define CStoRefA_exec(out,in,cond) \
if ( cond) out = in;
src/wbl/pwrb/src/pwrb_c_cstorefa.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_cstorefa.wb_load -- Defines the class CStoRefA.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Conditinal store analog attribute by reference
! Conditional store analog attribute by reference.
! @image orm_cstorefa_fo.png
!
!*/
Object CStoRefA $ClassDef 667
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtConnectionsAndDevBodies
Attr Flags = pwr_mClassDef_DevOnly
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "CStoRefA"
EndBody
!/**
! Input value to store in the referenced attribute.
!*/
Object In $Input 1
Body SysBody
Attr PgmName = "In"
Attr Flags |= PWR_MASK_RTVIRTUAL
Attr Flags |= PWR_MASK_DEVBODYREF
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "in"
EndBody
EndObject
!/**
! Specifies whether a storage will be done or not. FALSE
! means no storage and TRUE means storage of an analog
! value.
!*/
Object Cond $Input 2
Body SysBody
Attr PgmName = "Cond"
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "con"
Attr ConPointNr = 1
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the CStoRefA
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 2
Attr parameters[1] = 0
Attr parameters[2] = 0
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 15
Attr graphindex = 0
Attr default_mask[0] = 3
Attr default_mask[1] = 0
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 69
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "CStoRefA"
Attr graphname = "CStoRefA"
EndBody
EndObject
Object Template StoRefA
Body RtBody
Attr Cond = 1
EndBody
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_cstorefi.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_cstorefi.wb_load -- Defines the class CStoRefI.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Conditinal store analog attribute by reference
! Conditional store analog attribute by reference.
! @image orm_cstorefi_fo.png
!
!*/
Object CStoRefI $ClassDef 668
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtConnectionsAndDevBodies
Attr Flags = pwr_mClassDef_DevOnly
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "CStoRefI"
EndBody
!/**
! Input value to store in the referenced attribute.
!*/
Object In $Input 1
Body SysBody
Attr PgmName = "In"
Attr Flags |= PWR_MASK_RTVIRTUAL
Attr Flags |= PWR_MASK_DEVBODYREF
Attr TypeRef = "pwrs:Type-$Int32"
Attr GraphName = "in"
EndBody
EndObject
!/**
! Specifies whether a storage will be done or not. FALSE
! means no storage and TRUE means storage of an integer
! value.
!*/
Object Cond $Input 2
Body SysBody
Attr PgmName = "Cond"
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "con"
Attr ConPointNr = 1
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the CStoRefI
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 2
Attr parameters[1] = 0
Attr parameters[2] = 0
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 15
Attr graphindex = 0
Attr default_mask[0] = 3
Attr default_mask[1] = 0
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 69
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "CStoRefI"
Attr graphname = "CStoRefI"
EndBody
EndObject
Object Template StoRefI
Body RtBody
Attr Cond = 1
EndBody
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_getrefa.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_getrefa.wb_load -- Defines the class GetRefA.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Get analog attribute by reference
! Get analog attribute by reference.
! @image orm_getrefa_fo.png
!
!*/
Object GetRefA $ClassDef 661
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtAndDevBodies
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "GetRefA"
EndBody
!/**
! The value of the referenced attribute.
!*/
Object ActVal $Output 1
Body SysBody
Attr PgmName = "ActVal"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "ActVal"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the GetRefA
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 0
Attr parameters[1] = 0
Attr parameters[2] = 1
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 0
Attr default_mask[1] = 1
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 68
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "GetRefA"
Attr graphname = "GetRefA"
Attr debugpar = "ActVal"
EndBody
EndObject
Object Template GetRefA
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_getrefd.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_getrefd.wb_load -- Defines the class GetRefD.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Get digital attribute by reference
! Get Digital attribute by reference.
! @image orm_getrefd_fo.png
!
!*/
Object GetRefD $ClassDef 659
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtAndDevBodies
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "GetRefD"
EndBody
!/**
! The value of the referenced attribute.
!*/
Object Status $Output 1
Body SysBody
Attr PgmName = "Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "sts"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the GetRefD
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 0
Attr parameters[1] = 0
Attr parameters[2] = 1
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 0
Attr default_mask[1] = 1
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 68
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "GetRefD"
Attr graphname = "GetRefD"
Attr debugpar = "Status"
EndBody
EndObject
Object Template GetRefD
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_getrefi.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_getrefi.wb_load -- Defines the class GetRefI.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Get integer attribute by reference
! Get Integer attribute by reference.
! @image orm_getrefi_fo.png
!
!*/
Object GetRefI $ClassDef 660
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtAndDevBodies
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "GetRefI"
EndBody
!/**
! The value of the referenced attribute.
!*/
Object ActVal $Output 1
Body SysBody
Attr PgmName = "ActVal"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Int32"
Attr GraphName = "ActVal"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttibute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the GetRefI
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 0
Attr parameters[1] = 0
Attr parameters[2] = 1
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 0
Attr default_mask[1] = 1
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 68
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "GetRefI"
Attr graphname = "GetRefI"
Attr debugpar = "ActVal"
EndBody
EndObject
Object Template GetRefI
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_plcembed.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_plcembed.wb_load -- Defines the class PlcEmbed.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group PlantConfiguration,Plc
! @Summary Configures an intgrated PLC program
! Configures an embedded PLC program.
!
!*/
Object PlcEmbed $ClassDef 669
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_Standard
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "PlcEmbed"
EndBody
!/**
! Plc name.
!*/
Object Name $Attribute 1
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Plc thread.
!*/
Object ThreadObject $Attribute 2
Body SysBody
Attr TypeRef = "pwrs:Type-$Objid"
EndBody
EndObject
!/**
! Specifies the complete name of a Di, Dv or Do object
! which will be used as the reset signal of the Grafcet
! chains identified by the PlcPgm object.
! If there is no need to reset a Grafcet chain or if the
! PlcPgm object does not contain any Grafcet chain the
! attribute is left blank.
!*/
Object ResetObject $Attribute 3
Body SysBody
Attr TypeRef = "pwrs:Type-$AttrRef"
EndBody
EndObject
!/**
! Control the execution order of different PlcPgms
! in the same thread.
! Lower values of ExecuteOrder will be executed before
! higher.
!*/
Object ExecuteOrder $Attribute 4
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
!/**
! Link to the PlcPgm object containing the code for this object.
!*/
Object PlcObject $Attribute 5
Body SysBody
Attr TypeRef = "pwrs:Type-$Objid"
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
EndObject
Object Template PlcEmbed
Body RtBody
Attr Name = "Plc"
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_plcpgm.wb_load
View file @
914dc05d
...
...
@@ -95,6 +95,15 @@ SObject pwrb:Class
EndBody
EndObject
!/**
! Used by the code generator.
!*/
Object HostObject $Intern 4
Body SysBody
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
!/**
! @Summary Configuration status.
! Configuration status.
! Status in the development environment for an hierarchy,
...
...
src/wbl/pwrb/src/pwrb_c_resrefd.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_resrefd.wb_load -- Defines the class ResRefD.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Reset digital attribute by reference
! Reset digital attribute by reference.
! @image orm_resrefd_fo.png
!
!*/
Object ResRefD $ClassDef 666
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtConnectionsAndDevBodies
Attr Flags = pwr_mClassDef_DevOnly
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "ResRefD"
EndBody
!/**
! Condition to set false in the referenced attribute.
!*/
Object In $Input 1
Body SysBody
Attr PgmName = "In"
Attr Flags |= PWR_MASK_RTVIRTUAL
Attr Flags |= PWR_MASK_DEVBODYREF
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "in"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the ResRefD
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 1
Attr parameters[1] = 0
Attr parameters[2] = 0
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 1
Attr default_mask[1] = 0
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 69
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "ResRefD"
Attr graphname = "ResRefD"
Attr debugpar = "Status"
EndBody
EndObject
Object Template ResRefD
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_setrefd.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_setrefd.wb_load -- Defines the class SetRefD.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Set digital attribute by reference
! Set digital attribute by reference.
! @image orm_setrefd_fo.png
!
!*/
Object SetRefD $ClassDef 665
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtConnectionsAndDevBodies
Attr Flags = pwr_mClassDef_DevOnly
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "SetRefD"
EndBody
!/**
! Condition to set true in the referenced attribute.
!*/
Object In $Input 1
Body SysBody
Attr PgmName = "In"
Attr Flags |= PWR_MASK_RTVIRTUAL
Attr Flags |= PWR_MASK_DEVBODYREF
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "in"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the SetRefD
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 1
Attr parameters[1] = 0
Attr parameters[2] = 0
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 1
Attr default_mask[1] = 0
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 69
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "SetRefD"
Attr graphname = "SetRefD"
Attr debugpar = "Status"
EndBody
EndObject
Object Template SetRefD
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_storefa.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_storefa.wb_load -- Defines the class StoRefA.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Store analog attribute by reference
! Store analog attribute by reference.
! @image orm_storefa_fo.png
!
!*/
Object StoRefA $ClassDef 664
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtConnectionsAndDevBodies
Attr Flags = pwr_mClassDef_DevOnly
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "StoRefA"
EndBody
!/**
! Input value to store in the referenced attribute.
!*/
Object In $Input 1
Body SysBody
Attr PgmName = "In"
Attr Flags |= PWR_MASK_RTVIRTUAL
Attr Flags |= PWR_MASK_DEVBODYREF
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "in"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the StoRefA
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 1
Attr parameters[1] = 0
Attr parameters[2] = 0
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 1
Attr default_mask[1] = 0
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 69
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "StoRefA"
Attr graphname = "StoRefA"
EndBody
EndObject
Object Template StoRefA
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_storefd.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_storefd.wb_load -- Defines the class StoRefD.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Store digital attribute by reference
! Store digital attribute by reference.
! @image orm_storefd_fo.png
!
!*/
Object StoRefD $ClassDef 662
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtConnectionsAndDevBodies
Attr Flags = pwr_mClassDef_DevOnly
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "StoRefD"
EndBody
!/**
! Input value to store in the referenced attribute.
!*/
Object In $Input 1
Body SysBody
Attr PgmName = "In"
Attr Flags |= PWR_MASK_RTVIRTUAL
Attr Flags |= PWR_MASK_DEVBODYREF
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "in"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the StoRefD
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 1
Attr parameters[1] = 0
Attr parameters[2] = 0
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 1
Attr default_mask[1] = 0
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 69
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "StoRefD"
Attr graphname = "StoRefD"
Attr debugpar = "Status"
EndBody
EndObject
Object Template StoRefD
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrb/src/pwrb_c_storefi.wb_load
0 → 100644
View file @
914dc05d
!
! Proview Open Source Process Control.
! Copyright (C) 2005-2014 SSAB EMEA AB.
!
! This file is part of Proview.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with Proview. If not, see <http://www.gnu.org/licenses/>
!
! Linking Proview statically or dynamically with other modules is
! making a combined work based on Proview. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! combination.
!
! In addition, as a special exception, the copyright holders of
! Proview give you permission to, from the build function in the
! Proview Configurator, combine Proview with modules generated by the
! Proview PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of Proview (the version used to produce the
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_storefi.wb_load -- Defines the class StoRefI.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Plc,PlcIO
! @Summary Store integer attribute by reference
! Store integer attribute by reference.
! @image orm_storefi_fo.png
!
!*/
Object StoRefI $ClassDef 663
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_RtConnectionsAndDevBodies
Attr Flags = pwr_mClassDef_DevOnly
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "StoRefI"
EndBody
!/**
! Input value to store in the referenced attribute.
!*/
Object In $Input 1
Body SysBody
Attr PgmName = "In"
Attr Flags |= PWR_MASK_RTVIRTUAL
Attr Flags |= PWR_MASK_DEVBODYREF
Attr TypeRef = "pwrs:Type-$Int32"
Attr GraphName = "in"
EndBody
EndObject
EndObject
Object DevBody $ObjBodyDef 2
!/**
! Used by the PLC Editor. Specifies the complete name of
! the actual attribute.
!*/
Object RefAttribute $Intern 1
Body SysBody
Attr PgmName = "RefAttribute"
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr NiNaAnnot = 1
Attr NiNaSegments = 1
EndBody
EndObject
!/**
! Specifies how many segments of the actual object name
! that is to be displayed in the symbol of the StoRefI
! object. The segments are counted from behind.
!*/
Object RefAttributeSegments $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
Object PlcNode $Buffer 4
Body SysBody
Attr Class = pwr_eClass_PlcNode
Attr Flags |= PWR_MASK_INVISIBLE
EndBody
EndObject
EndObject
Object GraphPlcNode $GraphPlcNode
Body SysBody
Attr object_type = 11
Attr parameters[0] = 1
Attr parameters[1] = 0
Attr parameters[2] = 0
Attr parameters[3] = 0
Attr subwindows = 0
Attr graphmethod = 7
Attr graphindex = 0
Attr default_mask[0] = 1
Attr default_mask[1] = 0
Attr segname_annotation = 0
Attr devbody_annotation = 1
Attr compmethod = 69
Attr compindex = 0
Attr tracemethod = 1
Attr traceindex = 1
Attr connectmethod = 35
Attr executeordermethod = 2
Attr objname = "StoRefI"
Attr graphname = "StoRefI"
EndBody
EndObject
Object Template StoRefI
Body DevBody
Attr RefAttributeSegments = 2
EndBody
EndObject
EndObject
EndSObject
src/wbl/pwrs/src/pwrs_c_classdef.wb_load
View file @
914dc05d
...
...
@@ -299,6 +299,13 @@ SObject pwrs:Class
Attr MethodArguments[0] = "PlcConnectCCode"
EndBody
EndObject
Object EmbeddedPlc $MenuButton
Body SysBody
Attr ButtonName = "EmbeddedPlc"
Attr MethodName = "$ClassDef-ConfigFc"
Attr MethodArguments[0] = "EmbeddedPlc"
EndBody
EndObject
EndObject
EndObject
EndObject
...
...
wb/exp/wb/src/pwr_wb_palette.cnf
View file @
914dc05d
...
...
@@ -936,17 +936,20 @@ palette PlcEditorPalette
class CStoAp
class CStoAtoIp
class CStoAv
class CStoRefA
class GetAi
class GetAo
class GetAp
class GetApPtr
class GetAv
class GetConstAv
class GetRefA
class StoAo
class StoAp
class StoApPtr
class StoAtoIp
class StoAv
class StoRefA
}
menu Digital
{
...
...
@@ -957,9 +960,11 @@ palette PlcEditorPalette
class GetDp
class GetDpPtr
class GetDv
class GetRefD
class ResDo
class ResDp
class ResDv
class ResRefD
class SetDo
class SetDp
class SetDv
...
...
@@ -967,6 +972,8 @@ palette PlcEditorPalette
class StoDp
class StoDpPtr
class StoDv
class SetRefD
class StoRefD
}
menu Extern
{
...
...
@@ -1002,6 +1009,7 @@ palette PlcEditorPalette
class CStoIo
class CStoIp
class CStoIv
class CStoRefI
class GetConstIv
class GetIi
class GetIo
...
...
@@ -1009,12 +1017,14 @@ palette PlcEditorPalette
class GetIpPtr
class GetIpToA
class GetIv
class GetRefI
class IpCollect
class IpDistribute
class StoIo
class StoIp
class StoIpPtr
class StoIv
class StoRefI
class GetPi
class PiPos
}
...
...
wb/lib/wb/src/wb_c_classdef.cpp
View file @
914dc05d
...
...
@@ -96,6 +96,8 @@ static pwr_tStatus ConfigFc (
pwr_tObjid
coid
;
int
plcconnect
=
0
;
int
plctemplate
=
0
;
int
plcfo
=
0
;
int
plcembedded
=
0
;
char
str
[
80
];
pwr_sMenuButton
mb
;
...
...
@@ -116,18 +118,26 @@ static pwr_tStatus ConfigFc (
if
(
strcmp
(
mb
.
MethodArguments
[
0
],
"PlcConnect"
)
==
0
)
{
plcconnect
=
1
;
plctemplate
=
1
;
plcfo
=
1
;
}
else
if
(
strcmp
(
mb
.
MethodArguments
[
0
],
"CCode"
)
==
0
)
{
plcconnect
=
0
;
plctemplate
=
0
;
plcfo
=
1
;
}
else
if
(
strcmp
(
mb
.
MethodArguments
[
0
],
"PlcConnectCCode"
)
==
0
)
{
plcconnect
=
1
;
plctemplate
=
0
;
plcfo
=
1
;
}
else
if
(
strcmp
(
mb
.
MethodArguments
[
0
],
"EmbeddedPlc"
)
==
0
)
{
plctemplate
=
1
;
plcembedded
=
1
;
}
else
{
plcconnect
=
0
;
plctemplate
=
1
;
plcfo
=
1
;
}
sts
=
ldh_ObjidToName
(
ip
->
PointedSession
,
ip
->
Pointed
.
Objid
,
ldh_eName_Hierarchy
,
...
...
@@ -178,83 +188,85 @@ static pwr_tStatus ConfigFc (
}
}
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
oid
,
"DevBody"
,
pwr_eClass_ObjBodyDef
,
if
(
plcfo
)
{
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
oid
,
"DevBody"
,
pwr_eClass_ObjBodyDef
,
ip
->
Pointed
.
Objid
,
ldh_eDest_IntoLast
);
if
(
EVEN
(
sts
))
{
// The object already exist
}
if
(
EVEN
(
sts
))
{
// The object already exist
}
strcpy
(
name
,
pname
);
strcat
(
name
,
"-"
);
strcat
(
name
,
"DevBody"
);
sts
=
ldh_NameToObjid
(
ip
->
PointedSession
,
&
oid
,
name
);
if
(
EVEN
(
sts
))
return
sts
;
strcpy
(
name
,
pname
);
strcat
(
name
,
"-"
);
strcat
(
name
,
"DevBody"
);
sts
=
ldh_NameToObjid
(
ip
->
PointedSession
,
&
oid
,
name
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
oid
,
"PlcNode"
,
pwr_eClass_Buffer
,
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
oid
,
"PlcNode"
,
pwr_eClass_Buffer
,
oid
,
ldh_eDest_IntoLast
);
if
(
ODD
(
sts
))
{
cid
=
pwr_eClass_PlcNode
;
if
(
ODD
(
sts
))
{
cid
=
pwr_eClass_PlcNode
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"Class"
,
(
char
*
)
&
cid
,
sizeof
(
cid
));
if
(
EVEN
(
sts
))
return
sts
;
}
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"Class"
,
(
char
*
)
&
cid
,
sizeof
(
cid
));
if
(
EVEN
(
sts
))
return
sts
;
}
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
oid
,
"GraphPlcNode"
,
pwr_eClass_GraphPlcNode
,
ip
->
Pointed
.
Objid
,
ldh_eDest_IntoLast
);
if
(
ODD
(
sts
))
{
if
(
plctemplate
)
{
pwr_tCid
scid
[
2
];
scid
[
0
]
=
pwr_cClass_windowplc
;
scid
[
1
]
=
0
;
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
oid
,
"GraphPlcNode"
,
pwr_eClass_GraphPlcNode
,
ip
->
Pointed
.
Objid
,
ldh_eDest_IntoLast
);
if
(
ODD
(
sts
))
{
if
(
plctemplate
)
{
pwr_tCid
scid
[
2
];
scid
[
0
]
=
pwr_cClass_windowplc
;
scid
[
1
]
=
0
;
int_val
=
1
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"subwindows"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"subwindow_class[0]"
,
(
char
*
)
scid
,
sizeof
(
scid
));
if
(
EVEN
(
sts
))
return
sts
;
}
int_val
=
1
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"subwindows"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"segname_annotation"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"subwindow_class[0]"
,
(
char
*
)
scid
,
sizeof
(
scid
));
if
(
plctemplate
)
int_val
=
58
;
else
if
(
plcconnect
)
int_val
=
35
;
else
int_val
=
4
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"compmethod"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
}
int_val
=
1
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"segname_annotation"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
if
(
plctemplate
)
int_val
=
58
;
else
if
(
plcconnect
)
int_val
=
35
;
else
int_val
=
4
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"compmethod"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
if
(
plcconnect
)
{
int_val
=
10
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"connectmethod"
,
if
(
plcconnect
)
{
int_val
=
10
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"connectmethod"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
}
int_val
=
2
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"executeordermethod"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
oname
[
15
]
=
0
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"objname"
,
oname
,
sizeof
(
pwr_tString16
));
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"graphname"
,
oname
,
sizeof
(
pwr_tString16
));
if
(
EVEN
(
sts
))
return
sts
;
}
int_val
=
2
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"executeordermethod"
,
(
char
*
)
&
int_val
,
sizeof
(
int_val
));
if
(
EVEN
(
sts
))
return
sts
;
oname
[
15
]
=
0
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"objname"
,
oname
,
sizeof
(
pwr_tString16
));
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"graphname"
,
oname
,
sizeof
(
pwr_tString16
));
if
(
EVEN
(
sts
))
return
sts
;
}
if
(
plcconnect
)
{
...
...
@@ -287,6 +299,37 @@ static pwr_tStatus ConfigFc (
pwr_cClass_PlcTemplate
,
ip
->
Pointed
.
Objid
,
ldh_eDest_IntoLast
);
}
if
(
plcembedded
)
{
// Create PlcEmbed attribute
strcpy
(
name
,
pname
);
strcat
(
name
,
"-"
);
strcat
(
name
,
"RtBody"
);
sts
=
ldh_NameToObjid
(
ip
->
PointedSession
,
&
oid
,
name
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
coid
,
"PlcEmbed"
,
pwr_eClass_Param
,
oid
,
ldh_eDest_IntoLast
);
if
(
ODD
(
sts
))
{
tid
=
pwr_cClass_PlcEmbed
;
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
coid
,
"SysBody"
,
"TypeRef"
,
(
char
*
)
&
tid
,
sizeof
(
tid
));
if
(
EVEN
(
sts
))
return
sts
;
}
// Create PostCreate callback
sts
=
ldh_CreateObject
(
ip
->
PointedSession
,
&
oid
,
"PostCreate"
,
pwr_eClass_DbCallBack
,
ip
->
Pointed
.
Objid
,
ldh_eDest_IntoLast
);
strcpy
(
str
,
"PlcEmbed-PostCreate"
);
sts
=
ldh_SetObjectPar
(
ip
->
PointedSession
,
oid
,
"SysBody"
,
"MethodName"
,
str
,
sizeof
(
pwr_tString40
));
if
(
EVEN
(
sts
))
return
sts
;
//
}
return
PWRS__SUCCESS
;
}
...
...
wb/lib/wb/src/wb_c_plcembed.cpp
0 → 100644
View file @
914dc05d
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2014 SSAB EMEA AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
/* wb_c_plcembed.cpp -- work bench methods of the PlcEmbed class. */
#include "flow_ctx.h"
#include "wb_pwrs.h"
#include "pwr_baseclasses.h"
#include "wb_ldh_msg.h"
#include "wb_ldh.h"
#include "wb_pwrb_msg.h"
#include "wb_session.h"
static
pwr_tStatus
PostCreate
(
ldh_tSesContext
Session
,
pwr_tOid
Object
,
pwr_tOid
Father
,
pwr_tCid
Class
)
{
pwr_tOid
oid
;
pwr_tOid
toid
;
pwr_tStatus
sts
;
int
cnt
=
0
;
ldh_sParDef
*
bodydef
;
int
rows
;
pwr_tCid
cid
;
// Find the top PlcEmbed and set the ThreadObject
sts
=
ldh_GetObjectClass
(
Session
,
Object
,
&
cid
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_GetObjectBodyDef
(
Session
,
cid
,
"RtBody"
,
1
,
&
bodydef
,
&
rows
);
if
(
EVEN
(
sts
)
)
return
sts
;
for
(
int
i
=
0
;
i
<
rows
;
i
++
)
{
if
(
bodydef
[
i
].
Par
->
Param
.
TypeRef
==
pwr_cClass_PlcEmbed
)
{
sts
=
ldh_GetClassList
(
Session
,
pwr_cClass_PlcThread
,
&
oid
);
while
(
ODD
(
sts
))
{
cnt
++
;
toid
=
oid
;
sts
=
ldh_GetNextObject
(
Session
,
oid
,
&
oid
);
}
if
(
cnt
>
0
)
{
pwr_tAttrRef
object_aref
,
plcembed_aref
,
threadobject_aref
;
object_aref
=
cdh_ObjidToAref
(
Object
);
sts
=
ldh_ArefANameToAref
(
Session
,
&
object_aref
,
bodydef
[
i
].
ParName
,
&
plcembed_aref
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_ArefANameToAref
(
Session
,
&
plcembed_aref
,
"ThreadObject"
,
&
threadobject_aref
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
ldh_WriteAttribute
(
Session
,
&
threadobject_aref
,
(
void
*
)
&
toid
,
sizeof
(
toid
));
}
break
;
}
}
return
PWRB__SUCCESS
;
}
/*----------------------------------------------------------------------------*\
Every method to be exported to the workbench should be registred here.
\*----------------------------------------------------------------------------*/
pwr_dExport
pwr_BindMethods
(
PlcEmbed
)
=
{
pwr_BindMethod
(
PostCreate
),
pwr_NullMethod
};
wb/lib/wb/src/wb_gcg.cpp
View file @
914dc05d
This diff is collapsed.
Click to expand it.
wb/lib/wb/src/wb_gcg.h
View file @
914dc05d
...
...
@@ -345,6 +345,9 @@ pwr_tStatus gcg_read_volume_plclist(
gcg_t_plcproclist
**
plcproclist
);
int
gcg_comp_plcembed_all
(
ldh_tSession
ldhses
);
int
gcg_comp_plcembed
(
ldh_tSession
ldhses
,
pwr_tOid
oid
);
#ifdef __cplusplus
}
#endif
...
...
wb/lib/wb/src/wb_gobj.cpp
View file @
914dc05d
...
...
@@ -58,7 +58,7 @@
#define BEEP putchar( '\7' );
#define GOBJ_MAX_METHOD 3
4
#define GOBJ_MAX_METHOD 3
5
typedef
int
(
*
gobj_tMethod
)(
WFoe
*
,
vldh_t_node
,
unsigned
long
);
...
...
@@ -97,6 +97,7 @@ int gobj_get_object_m31( WFoe *foe, vldh_t_node node, unsigned long index);
int
gobj_get_object_m32
(
WFoe
*
foe
,
vldh_t_node
node
,
unsigned
long
index
);
int
gobj_get_object_m33
(
WFoe
*
foe
,
vldh_t_node
node
,
unsigned
long
index
);
int
gobj_get_object_m34
(
WFoe
*
foe
,
vldh_t_node
node
,
unsigned
long
index
);
int
gobj_get_object_m35
(
WFoe
*
foe
,
vldh_t_node
node
,
unsigned
long
index
);
gobj_tMethod
gobj_get_object_m
[
40
]
=
{
gobj_get_object_m0
,
...
...
@@ -134,6 +135,7 @@ gobj_tMethod gobj_get_object_m[40] = {
gobj_get_object_m32
,
gobj_get_object_m33
,
gobj_get_object_m34
,
gobj_get_object_m35
,
};
static
pwr_tAttrRef
gobj_selected_aref
;
...
...
@@ -2388,7 +2390,7 @@ int gobj_get_object_m27( WFoe *foe, vldh_t_node node, unsigned long index)
if
(
EVEN
(
sts
))
return
sts
;
}
/* Check that attribute can be disbled */
/* Check that attribute can be dis
a
bled */
sts
=
ldh_GetAttrRefInfo
(
ldhses
,
&
attrref
,
&
info
);
if
(
EVEN
(
sts
))
return
sts
;
...
...
@@ -3059,7 +3061,7 @@ int gobj_get_object_m33( WFoe *foe, vldh_t_node node, unsigned long index)
}
//
// Method for getdatarefv, stodatarefv, cstodatarefv. Inserts the selected
sv-
object in the
// Method for getdatarefv, stodatarefv, cstodatarefv. Inserts the selected object in the
// navigator in the parameter DataRefvObject in a GetDataRefv object.
//
int
gobj_get_object_m34
(
WFoe
*
foe
,
vldh_t_node
node
,
unsigned
long
index
)
...
...
@@ -3110,6 +3112,56 @@ int gobj_get_object_m34( WFoe *foe, vldh_t_node node, unsigned long index)
return
FOE__SUCCESS
;
}
//
// Method for GetRefXx and StoRefXx. Inserts the selected attribute in the
// navigator in the attribute RefAttribute in a GetDataRefv object.
//
int
gobj_get_object_m35
(
WFoe
*
foe
,
vldh_t_node
node
,
unsigned
long
index
)
{
ldh_tSesContext
ldhses
;
int
sts
;
vldh_t_plc
plc
;
pwr_sAttrRef
attrref
;
int
is_attr
;
ldh_sAttrRefInfo
info
;
/* Get the selected object in the navigator */
plc
=
(
node
->
hn
.
wind
)
->
hw
.
plc
;
ldhses
=
(
node
->
hn
.
wind
)
->
hw
.
ldhses
;
sts
=
gobj_get_select
(
foe
,
&
attrref
,
&
is_attr
);
if
(
EVEN
(
sts
))
{
foe
->
message
(
"Select an attribute of the AttrRef in the navigator"
);
BEEP
;
return
sts
;
}
sts
=
ldh_GetAttrRefInfo
(
ldhses
,
&
attrref
,
&
info
);
if
(
EVEN
(
sts
))
return
sts
;
if
(
info
.
type
!=
pwr_eType_AttrRef
)
{
foe
->
message
(
"Selected attribute is not of type AttrRef"
);
BEEP
;
return
0
;
}
if
(
cdh_IsClassVolume
(
node
->
ln
.
oid
.
vid
))
{
sts
=
gobj_ref_replace
(
ldhses
,
node
,
&
attrref
);
if
(
EVEN
(
sts
))
return
sts
;
}
/* Set the parameter value */
sts
=
ldh_SetObjectPar
(
ldhses
,
node
->
ln
.
oid
,
"DevBody"
,
"RefAttribute"
,
(
char
*
)
&
attrref
,
sizeof
(
attrref
));
if
(
EVEN
(
sts
))
return
sts
;
foe
->
gre
->
node_update
(
node
);
return
FOE__SUCCESS
;
}
//
// Description: Method for objects with nothing to expand
...
...
wb/lib/wb/src/wb_i_base_methods.cpp
View file @
914dc05d
...
...
@@ -44,6 +44,7 @@ pwr_dImport pwr_BindMethods(SevHist);
pwr_dImport
pwr_BindMethods
(
DsTrend
);
pwr_dImport
pwr_BindMethods
(
DSup
);
pwr_dImport
pwr_BindMethods
(
PlcPgm
);
pwr_dImport
pwr_BindMethods
(
PlcEmbed
);
pwr_dImport
pwr_BindMethods
(
ProjectReg
);
pwr_dImport
pwr_BindMethods
(
RootVolumeConfig
);
pwr_dImport
pwr_BindMethods
(
SubVolumeConfig
);
...
...
@@ -85,6 +86,7 @@ pwr_dExport pwr_BindClasses(Base) = {
pwr_BindClass
(
DsTrend
),
pwr_BindClass
(
DSup
),
pwr_BindClass
(
PlcPgm
),
pwr_BindClass
(
PlcEmbed
),
pwr_BindClass
(
ProjectReg
),
pwr_BindClass
(
RootVolumeConfig
),
pwr_BindClass
(
SubVolumeConfig
),
...
...
wb/lib/wb/src/wb_ldh.cpp
View file @
914dc05d
...
...
@@ -2262,6 +2262,32 @@ ldh_RecixSetDestination(ldh_tSession session, const char *destination)
sp
->
recix_set_destination
(
destination
);
}
pwr_tStatus
ldh_AttrArefToObjectAref
(
ldh_tSession
session
,
pwr_tAttrRef
*
arp
,
pwr_tAttrRef
*
oarp
)
{
wb_session
*
sp
=
(
wb_session
*
)
session
;
pwr_tAName
str
;
char
*
t
;
wb_attribute
a
=
sp
->
attribute
(
arp
);
if
(
!
a
)
return
a
.
sts
();
wb_name
n
=
a
.
longName
();
strcpy
(
str
,
n
.
name
(
cdh_mName_volume
|
cdh_mName_attribute
));
t
=
strrchr
(
str
,
'.'
);
if
(
!
t
)
return
LDH__NO_PARENT
;
*
t
=
0
;
wb_attribute
oa
=
sp
->
attribute
(
str
);
if
(
!
oa
)
return
oa
.
sts
();
oa
.
aref
(
oarp
);
return
oa
.
sts
();
}
#endif
...
...
wb/lib/wb/src/wb_ldh.h
View file @
914dc05d
...
...
@@ -1295,6 +1295,12 @@ ldh_RecixSetDestination(
const
char
*
destination
);
pwr_tStatus
ldh_AttrArefToObjectAref
(
ldh_tSession
session
,
pwr_tAttrRef
*
arp
,
pwr_tAttrRef
*
oarp
);
#ifdef __cplusplus
}
...
...
wb/lib/wb/src/wb_wb.meth
View file @
914dc05d
...
...
@@ -4,6 +4,7 @@ SevHist
DsTrend
DSup
PlcPgm
PlcEmbed
ProjectReg
RootVolumeConfig
SubVolumeConfig
...
...
wb/lib/wb/src/wb_wnav_command.cpp
View file @
914dc05d
...
...
@@ -215,7 +215,7 @@ dcli_tCmdTable wnav_command_table[] = {
&
wnav_compile_func
,
{
"/MODIFIED"
,
"/DEBUG"
,
"/HIERARCHY"
,
"/PLCPGM"
,
"/WINDOW"
,
"/FROM_PLCPGM"
,
"/ALLPLCPGM"
,
"/VOLALL"
,
"/VOLUMES"
,
"/FROM_PLCPGM"
,
"/ALLPLCPGM"
,
"/VOLALL"
,
"/VOLUMES"
,
"/PLCEMBED"
,
""
}
},
{
...
...
@@ -2205,6 +2205,7 @@ static int wnav_compile_func( void *client_data,
int
allplcpgm
;
char
volumestr
[
80
]
;
char
*
volumestr_p
;
pwr_tOName
plcembed_str
;
int
sts_plcpgm
,
sts_hier
,
sts_window
,
sts_from
,
sts_volumes
;
if
(
!
wnav
->
editmode
)
...
...
@@ -2216,6 +2217,37 @@ static int wnav_compile_func( void *client_data,
modified
=
ODD
(
dcli_get_qualifier
(
"/MODIFIED"
,
0
,
0
));
debug
=
ODD
(
dcli_get_qualifier
(
"/DEBUG"
,
0
,
0
));
if
((
sts_hier
=
ODD
(
dcli_get_qualifier
(
"/PLCEMBED"
,
plcembed_str
,
sizeof
(
plcembed_str
)))))
{
pwr_tOid
oid
;
allplcpgm
=
ODD
(
dcli_get_qualifier
(
"/ALLPLCPGM"
,
0
,
0
));
sts
=
wnav_wccm_get_ldhsession_cb
(
wnav
,
&
wnav
->
ldhses
);
if
(
EVEN
(
sts
))
return
sts
;
if
(
allplcpgm
)
{
sts
=
gcg_comp_plcembed_all
(
wnav
->
ldhses
);
if
(
EVEN
(
sts
))
{
wnav
->
message
(
'E'
,
wnav_get_message
(
sts
));
return
sts
;
}
}
else
{
sts
=
ldh_NameToObjid
(
wnav
->
ldhses
,
&
oid
,
plcembed_str
);
if
(
EVEN
(
sts
))
{
wnav
->
message
(
'E'
,
"No such object"
);
return
sts
;
}
sts
=
gcg_comp_plcembed
(
wnav
->
ldhses
,
oid
);
if
(
EVEN
(
sts
))
{
wnav
->
message
(
'E'
,
wnav_get_message
(
sts
));
return
sts
;
}
}
return
WNAV__SUCCESS
;
}
if
((
sts_hier
=
ODD
(
dcli_get_qualifier
(
"/HIERARCHY"
,
hierstr
,
sizeof
(
hierstr
)))))
hierstr_p
=
hierstr
;
else
...
...
xtt/lib/xtt/gtk/xtt_trace_gtk.cpp
View file @
914dc05d
...
...
@@ -317,7 +317,7 @@ RtTraceGtk::RtTraceGtk( void *tr_parent_ctx, GtkWidget *tr_parent_wid, pwr_tObji
pwr_tObjid
window_objid
;
pwr_tClassId
cid
;
char
title
[
220
];
pwr_t
O
Name
hostname
;
pwr_t
A
Name
hostname
;
pwr_tOName
plcconnect
;
pwr_tFileName
fname
;
...
...
xtt/lib/xtt/src/xtt_c_object.cpp
View file @
914dc05d
...
...
@@ -232,16 +232,34 @@ static pwr_tStatus OpenTrace( xmenu_sMenuCall *ip)
}
}
if
(
!
in_plc
)
{
pwr_tAName
aname
;
sts
=
gdh_AttrrefToName
(
objar
,
name
,
sizeof
(
name
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
sts
;
strcat
(
name
,
".PlcConnect"
);
sts
=
gdh_GetObjectInfo
(
name
,
(
void
*
)
&
plcconnect
,
sizeof
(
plcconnect
));
if
(
EVEN
(
sts
))
return
sts
;
oid
=
plcconnect
.
Objid
;
sts
=
gdh_GetParent
(
oid
,
&
parent
);
if
(
EVEN
(
sts
))
return
sts
;
strcpy
(
aname
,
name
);
strcat
(
aname
,
".PlcConnect"
);
sts
=
gdh_GetObjectInfo
(
aname
,
(
void
*
)
&
plcconnect
,
sizeof
(
plcconnect
));
if
(
ODD
(
sts
))
{
oid
=
plcconnect
.
Objid
;
sts
=
gdh_GetParent
(
oid
,
&
parent
);
if
(
EVEN
(
sts
))
return
sts
;
}
else
{
pwr_tOid
plcoid
;
strcpy
(
aname
,
name
);
strcat
(
aname
,
".PlcEmbed.PlcObject"
);
sts
=
gdh_GetObjectInfo
(
aname
,
(
void
*
)
&
plcoid
,
sizeof
(
plcoid
));
if
(
EVEN
(
sts
))
return
sts
;
sts
=
gdh_ObjidToName
(
plcoid
,
name
,
sizeof
(
name
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
sts
;
sprintf
(
cmd
,
"open trace/name=%s"
,
name
);
((
XNav
*
)
ip
->
EditorContext
)
->
command
(
cmd
);
return
1
;
}
}
sts
=
gdh_ObjidToName
(
parent
,
parent_name
,
sizeof
(
parent_name
),
...
...
@@ -260,10 +278,11 @@ static pwr_tStatus OpenTrace( xmenu_sMenuCall *ip)
static
pwr_tStatus
OpenTraceFilter
(
xmenu_sMenuCall
*
ip
)
{
int
sts
;
pwr_tObjid
parent
;
pwr_tOid
parent
;
pwr_tOid
plcoid
;
pwr_tClassId
classid
;
pwr_sAttrRef
plcconnect
;
pwr_tAName
name
;
pwr_tAName
name
,
aname
;
pwr_sAttrRef
*
objar
;
if
(
!
ip
->
ItemList
||
cdh_ObjidIsNull
(
ip
->
ItemList
[
ip
->
ChosenItem
].
CurrentObject
.
Objid
))
...
...
@@ -290,8 +309,9 @@ static pwr_tStatus OpenTraceFilter( xmenu_sMenuCall *ip)
sts
=
gdh_AttrrefToName
(
objar
,
name
,
sizeof
(
name
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
sts
;
strcat
(
name
,
".PlcConnect"
);
sts
=
gdh_GetObjectInfo
(
name
,
(
void
*
)
&
plcconnect
,
sizeof
(
plcconnect
));
strcpy
(
aname
,
name
);
strcat
(
aname
,
".PlcConnect"
);
sts
=
gdh_GetObjectInfo
(
aname
,
(
void
*
)
&
plcconnect
,
sizeof
(
plcconnect
));
if
(
ODD
(
sts
)
&&
cdh_ObjidIsNotNull
(
plcconnect
.
Objid
))
{
for
(
sts
=
gdh_GetParent
(
plcconnect
.
Objid
,
&
parent
);
ODD
(
sts
);
...
...
@@ -302,6 +322,16 @@ static pwr_tStatus OpenTraceFilter( xmenu_sMenuCall *ip)
}
}
// Try PlcObject attribute
strcpy
(
aname
,
name
);
strcat
(
aname
,
".PlcEmbed.PlcObject"
);
sts
=
gdh_GetObjectInfo
(
aname
,
(
void
*
)
&
plcoid
,
sizeof
(
plcoid
));
if
(
ODD
(
sts
)
&&
cdh_ObjidIsNotNull
(
plcoid
))
{
gdh_GetObjectClass
(
plcoid
,
&
classid
);
if
(
classid
==
pwr_cClass_plc
)
return
XNAV__SUCCESS
;
}
return
XNAV__INVISIBLE
;
}
...
...
xtt/lib/xtt/src/xtt_trace.cpp
View file @
914dc05d
...
...
@@ -120,9 +120,37 @@ int RtTrace::get_filename( pwr_tObjid window_objid, char *filename,
sts
=
gdh_GetObjectClass
(
host
,
&
cid
);
if
(
EVEN
(
sts
))
return
sts
;
if
(
cid
==
pwr_cClass_plc
)
return
0
;
if
(
cid
==
pwr_cClass_plc
)
{
pwr_tAttrRef
aref
,
hostaref
;
aref
=
cdh_ObjidToAref
(
host
);
sts
=
gdh_ArefANameToAref
(
&
aref
,
"HostObject"
,
&
aref
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
gdh_GetObjectInfoAttrref
(
&
aref
,
&
hostaref
,
sizeof
(
hostaref
));
if
(
EVEN
(
sts
))
return
sts
;
if
(
cdh_ObjidIsNull
(
hostaref
.
Objid
))
return
0
;
sts
=
gdh_GetAttrRefTid
(
&
hostaref
,
&
cid
);
if
(
EVEN
(
sts
))
return
sts
;
sts
=
gdh_ObjidToName
(
host
,
name
,
sizeof
(
name
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
sts
;
/*
sts = gdh_AttrrefToName( &hostaref, name, sizeof(name),
cdh_mName_volumeStrict);
if ( EVEN(sts)) return sts;
*/
}
else
{
sts
=
gdh_ObjidToName
(
host
,
name
,
sizeof
(
name
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
sts
;
}
sts
=
gdh_ObjidToName
(
cdh_ClassIdToObjid
(
cid
),
cname
,
sizeof
(
cname
),
cdh_mName_object
);
if
(
EVEN
(
sts
))
return
sts
;
...
...
@@ -140,10 +168,6 @@ int RtTrace::get_filename( pwr_tObjid window_objid, char *filename,
return
0
;
}
sts
=
gdh_ObjidToName
(
host
,
name
,
sizeof
(
name
),
cdh_mName_volumeStrict
);
if
(
EVEN
(
sts
))
return
sts
;
strcpy
(
hostname
,
name
);
*
has_host
=
1
;
...
...
xtt/lib/xtt/src/xtt_trace.h
View file @
914dc05d
...
...
@@ -94,7 +94,7 @@ class RtTrace {
pwr_tFileName
filename
;
int
version
;
int
m_has_host
;
pwr_t
O
Name
m_hostname
;
pwr_t
A
Name
m_hostname
;
pwr_tAName
m_plcconnect
;
CoWow
*
wow
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment