Commit 914dc05d authored by Claes Sjofors's avatar Claes Sjofors

Wb classes with embeded plc code added

parent eabf682a
......@@ -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;
!
! 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
!
! 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
!
! 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
!
! 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
!
! 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
!
! 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
......@@ -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,
......
!
! 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
!
! 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
!
! 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
!
! 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
!
! 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
......@@ -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
......
......@@ -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
}
......
......@@ -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;
}
......
/*
* 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
};
This diff is collapsed.
......@@ -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
......
......@@ -58,7 +58,7 @@
#define BEEP putchar( '\7' );
#define GOBJ_MAX_METHOD 34
#define GOBJ_MAX_METHOD 35
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 disabled */
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
......
......@@ -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),
......
......@@ -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
......
......@@ -1295,6 +1295,12 @@ ldh_RecixSetDestination(
const char *destination
);
pwr_tStatus
ldh_AttrArefToObjectAref(
ldh_tSession session,
pwr_tAttrRef *arp,
pwr_tAttrRef *oarp
);
#ifdef __cplusplus
}
......
......@@ -4,6 +4,7 @@ SevHist
DsTrend
DSup
PlcPgm
PlcEmbed
ProjectReg
RootVolumeConfig
SubVolumeConfig
......
......@@ -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
......
......@@ -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_tOName hostname;
pwr_tAName hostname;
pwr_tOName plcconnect;
pwr_tFileName fname;
......
......@@ -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;
}
......
......@@ -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;
......
......@@ -94,7 +94,7 @@ class RtTrace {
pwr_tFileName filename;
int version;
int m_has_host;
pwr_tOName m_hostname;
pwr_tAName m_hostname;
pwr_tAName m_plcconnect;
CoWow *wow;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment