├── .gitignore
├── LICENSE
├── README.md
├── TF6100_OpcUa_Client_Sample
├── ClientSampleProject
│ ├── ClientSampleProject.plcproj
│ ├── ClientSampleProject.tmc
│ ├── DUTs
│ │ ├── ST_OutputArgInfoAndData.TcDUT
│ │ ├── ST_ReadListData.TcDUT
│ │ └── ST_ReadListData_Array.TcDUT
│ ├── GVLs
│ │ └── GlobalSettings.TcGVL
│ ├── POUs
│ │ ├── Browse
│ │ │ └── PRG_BROWSE.TcPOU
│ │ ├── Connect
│ │ │ ├── PRG_CONNECT.TcPOU
│ │ │ └── PRG_GETSTATUS.TcPOU
│ │ ├── HistoryUpdate
│ │ │ ├── FB_HistoryUpdate_INT.TcPOU
│ │ │ ├── FB_HistoryUpdate_LREAL.TcPOU
│ │ │ ├── PRG_HA_MultipleNodes.TcPOU
│ │ │ └── PRG_HA_SingleNode.TcPOU
│ │ ├── MAIN.TcPOU
│ │ ├── MethodCall
│ │ │ ├── PRG_METHOD.TcPOU
│ │ │ └── PRG_METHOD_NOARGS.TcPOU
│ │ ├── Read
│ │ │ ├── PRG_READ.TcPOU
│ │ │ ├── PRG_READ_IndexRange.TcPOU
│ │ │ ├── PRG_READ_List.TcPOU
│ │ │ └── PRG_READ_List_Array.TcPOU
│ │ └── Write
│ │ │ ├── PRG_WRITE.TcPOU
│ │ │ └── PRG_WRITE_IndexRange.TcPOU
│ └── PlcTask.TcTTO
├── ServerSampleProject
│ ├── DUTs
│ │ ├── ST_Structure.TcDUT
│ │ └── ST_SubStructure.TcDUT
│ ├── POUs
│ │ ├── FB_Mathematics.TcPOU
│ │ └── MAIN.TcPOU
│ ├── PlcTask.TcTTO
│ ├── ServerSampleProject.plcproj
│ └── ServerSampleProject.tmc
├── TF6100_OpcUa_Client_Sample.sln
├── TF6100_OpcUa_Client_Sample.tsproj
└── TcUaHaConfig.xml
├── TF6100_OpcUa_Server_Sample
├── ServerSampleProject
│ ├── DUTs
│ │ ├── Enums
│ │ │ ├── E_Enum_1.TcDUT
│ │ │ ├── E_Enum_2.TcDUT
│ │ │ └── E_Operation.TcDUT
│ │ └── Structures
│ │ │ ├── ST_Complex_1.TcDUT
│ │ │ ├── ST_Complex_2.TcDUT
│ │ │ ├── ST_Complex_3.TcDUT
│ │ │ ├── ST_Complex_4.TcDUT
│ │ │ ├── ST_Complex_5.TcDUT
│ │ │ ├── ST_Complex_6.TcDUT
│ │ │ ├── ST_Complex_7.TcDUT
│ │ │ ├── ST_Complex_8.TcDUT
│ │ │ ├── ST_MathOperation.TcDUT
│ │ │ └── ST_MathematicResults.TcDUT
│ ├── GVLs
│ │ ├── GVL_alarm_condition.TcGVL
│ │ ├── GVL_analog_items.TcGVL
│ │ ├── GVL_arrays.TcGVL
│ │ ├── GVL_enums.TcGVL
│ │ ├── GVL_historizing.TcGVL
│ │ ├── GVL_inheritance.TcGVL
│ │ ├── GVL_methods.TcGVL
│ │ ├── GVL_nodes_dynamic.TcGVL
│ │ ├── GVL_nodes_static.TcGVL
│ │ ├── GVL_properties.TcGVL
│ │ ├── GVL_structures.TcGVL
│ │ ├── GVL_user_access.TcGVL
│ │ └── Settings.TcGVL
│ ├── POUs
│ │ ├── Inheritance
│ │ │ ├── FB_Base.TcPOU
│ │ │ └── FB_Derived.TcPOU
│ │ ├── MAIN.TcPOU
│ │ ├── Methods
│ │ │ ├── FB_Job.TcPOU
│ │ │ ├── FB_Mathematics.TcPOU
│ │ │ └── FB_Methods.TcPOU
│ │ ├── Programs
│ │ │ ├── PRG_Dynamic.TcPOU
│ │ │ ├── PRG_Eventlogger.TcPOU
│ │ │ └── PRG_Static.TcPOU
│ │ └── Properties
│ │ │ └── FB_Properties.TcPOU
│ ├── PlcTask.TcTTO
│ ├── ServerSampleProject.plcproj
│ └── ServerSampleProject.tmc
├── TF6100_OpcUa_Server_Sample.sln
└── TF6100_OpcUa_Server_Sample.tsproj
├── TS6100_OpcUa_Client_Sample
└── Tc2_PLCopen_OpcUa_Samples.pro
└── TS6100_OpcUa_Server_Sample
└── TS6100_OpcUa_Server_Sample.pro
/.gitignore:
--------------------------------------------------------------------------------
1 | # gitignore template for TwinCAT3
2 | # website: https://www.beckhoff.com/twincat3/
3 | #
4 | # Recommended: VisualStudio.gitignore
5 |
6 | # Some usual suspects
7 | *.bak
8 | *.bin
9 | *.zip
10 |
11 | # TwinCAT files
12 | *.compiled-library
13 | *.compileinfo
14 | *.tmcRefac
15 | *.library
16 | *.project.~u
17 | *.tclrs
18 | *.tnzip
19 | *.tpy
20 | *.tpzip
21 | *.tsproj.bk?
22 | *.tszip
23 | *.xti.bk?
24 | LineIDs.dbg
25 | _Boot/
26 | _CompileInfo/
27 | _Libraries/
28 |
29 | ## Ignore Visual Studio temporary files, build results, and
30 | ## files generated by popular Visual Studio add-ons.
31 | ##
32 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
33 |
34 | # User-specific files
35 | *.rsuser
36 | *.suo
37 | *.user
38 | *.userosscache
39 | *.sln.docstates
40 |
41 | # User-specific files (MonoDevelop/Xamarin Studio)
42 | *.userprefs
43 |
44 | # Mono auto generated files
45 | mono_crash.*
46 |
47 | # Build results
48 | [Dd]ebug/
49 | [Dd]ebugPublic/
50 | [Rr]elease/
51 | [Rr]eleases/
52 | x64/
53 | x86/
54 | [Aa][Rr][Mm]/
55 | [Aa][Rr][Mm]64/
56 | bld/
57 | [Bb]in/
58 | [Oo]bj/
59 | [Ll]og/
60 | [Ll]ogs/
61 |
62 | # Visual Studio 2015/2017 cache/options directory
63 | .vs/
64 | # Uncomment if you have tasks that create the project's static files in wwwroot
65 | #wwwroot/
66 |
67 | # Visual Studio 2017 auto generated files
68 | Generated\ Files/
69 |
70 | # MSTest test Results
71 | [Tt]est[Rr]esult*/
72 | [Bb]uild[Ll]og.*
73 |
74 | # NUnit
75 | *.VisualState.xml
76 | TestResult.xml
77 | nunit-*.xml
78 |
79 | # Build Results of an ATL Project
80 | [Dd]ebugPS/
81 | [Rr]eleasePS/
82 | dlldata.c
83 |
84 | # Benchmark Results
85 | BenchmarkDotNet.Artifacts/
86 |
87 | # .NET Core
88 | project.lock.json
89 | project.fragment.lock.json
90 | artifacts/
91 |
92 | # StyleCop
93 | StyleCopReport.xml
94 |
95 | # Files built by Visual Studio
96 | *_i.c
97 | *_p.c
98 | *_h.h
99 | *.ilk
100 | *.meta
101 | *.obj
102 | *.iobj
103 | *.pch
104 | *.pdb
105 | *.ipdb
106 | *.pgc
107 | *.pgd
108 | *.rsp
109 | *.sbr
110 | *.tlb
111 | *.tli
112 | *.tlh
113 | *.tmp
114 | *.tmp_proj
115 | *_wpftmp.csproj
116 | *.log
117 | *.vspscc
118 | *.vssscc
119 | .builds
120 | *.pidb
121 | *.svclog
122 | *.scc
123 |
124 | # Chutzpah Test files
125 | _Chutzpah*
126 |
127 | # Visual C++ cache files
128 | ipch/
129 | *.aps
130 | *.ncb
131 | *.opendb
132 | *.opensdf
133 | *.sdf
134 | *.cachefile
135 | *.VC.db
136 | *.VC.VC.opendb
137 |
138 | # Visual Studio profiler
139 | *.psess
140 | *.vsp
141 | *.vspx
142 | *.sap
143 |
144 | # Visual Studio Trace Files
145 | *.e2e
146 |
147 | # TFS 2012 Local Workspace
148 | $tf/
149 |
150 | # Guidance Automation Toolkit
151 | *.gpState
152 |
153 | # ReSharper is a .NET coding add-in
154 | _ReSharper*/
155 | *.[Rr]e[Ss]harper
156 | *.DotSettings.user
157 |
158 | # TeamCity is a build add-in
159 | _TeamCity*
160 |
161 | # DotCover is a Code Coverage Tool
162 | *.dotCover
163 |
164 | # AxoCover is a Code Coverage Tool
165 | .axoCover/*
166 | !.axoCover/settings.json
167 |
168 | # Visual Studio code coverage results
169 | *.coverage
170 | *.coveragexml
171 |
172 | # NCrunch
173 | _NCrunch_*
174 | .*crunch*.local.xml
175 | nCrunchTemp_*
176 |
177 | # MightyMoose
178 | *.mm.*
179 | AutoTest.Net/
180 |
181 | # Web workbench (sass)
182 | .sass-cache/
183 |
184 | # Installshield output folder
185 | [Ee]xpress/
186 |
187 | # DocProject is a documentation generator add-in
188 | DocProject/buildhelp/
189 | DocProject/Help/*.HxT
190 | DocProject/Help/*.HxC
191 | DocProject/Help/*.hhc
192 | DocProject/Help/*.hhk
193 | DocProject/Help/*.hhp
194 | DocProject/Help/Html2
195 | DocProject/Help/html
196 |
197 | # Click-Once directory
198 | publish/
199 |
200 | # Publish Web Output
201 | *.[Pp]ublish.xml
202 | *.azurePubxml
203 | # Note: Comment the next line if you want to checkin your web deploy settings,
204 | # but database connection strings (with potential passwords) will be unencrypted
205 | *.pubxml
206 | *.publishproj
207 |
208 | # Microsoft Azure Web App publish settings. Comment the next line if you want to
209 | # checkin your Azure Web App publish settings, but sensitive information contained
210 | # in these scripts will be unencrypted
211 | PublishScripts/
212 |
213 | # NuGet Packages
214 | *.nupkg
215 | # NuGet Symbol Packages
216 | *.snupkg
217 | # The packages folder can be ignored because of Package Restore
218 | **/[Pp]ackages/*
219 | # except build/, which is used as an MSBuild target.
220 | !**/[Pp]ackages/build/
221 | # Uncomment if necessary however generally it will be regenerated when needed
222 | #!**/[Pp]ackages/repositories.config
223 | # NuGet v3's project.json files produces more ignorable files
224 | *.nuget.props
225 | *.nuget.targets
226 |
227 | # Microsoft Azure Build Output
228 | csx/
229 | *.build.csdef
230 |
231 | # Microsoft Azure Emulator
232 | ecf/
233 | rcf/
234 |
235 | # Windows Store app package directories and files
236 | AppPackages/
237 | BundleArtifacts/
238 | Package.StoreAssociation.xml
239 | _pkginfo.txt
240 | *.appx
241 | *.appxbundle
242 | *.appxupload
243 |
244 | # Visual Studio cache files
245 | # files ending in .cache can be ignored
246 | *.[Cc]ache
247 | # but keep track of directories ending in .cache
248 | !?*.[Cc]ache/
249 |
250 | # Others
251 | ClientBin/
252 | ~$*
253 | *~
254 | *.dbmdl
255 | *.dbproj.schemaview
256 | *.jfm
257 | *.pfx
258 | *.publishsettings
259 | orleans.codegen.cs
260 |
261 | # Including strong name files can present a security risk
262 | # (https://github.com/github/gitignore/pull/2483#issue-259490424)
263 | #*.snk
264 |
265 | # Since there are multiple workflows, uncomment next line to ignore bower_components
266 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
267 | #bower_components/
268 |
269 | # RIA/Silverlight projects
270 | Generated_Code/
271 |
272 | # Backup & report files from converting an old project file
273 | # to a newer Visual Studio version. Backup files are not needed,
274 | # because we have git ;-)
275 | _UpgradeReport_Files/
276 | Backup*/
277 | UpgradeLog*.XML
278 | UpgradeLog*.htm
279 | ServiceFabricBackup/
280 |
281 | # SQL Server files
282 | *.mdf
283 | *.ldf
284 | *.ndf
285 |
286 | # Business Intelligence projects
287 | *.rdl.data
288 | *.bim.layout
289 | *.bim_*.settings
290 | *.rptproj.rsuser
291 | *- [Bb]ackup.rdl
292 | *- [Bb]ackup ([0-9]).rdl
293 | *- [Bb]ackup ([0-9][0-9]).rdl
294 |
295 | # Microsoft Fakes
296 | FakesAssemblies/
297 |
298 | # GhostDoc plugin setting file
299 | *.GhostDoc.xml
300 |
301 | # Node.js Tools for Visual Studio
302 | .ntvs_analysis.dat
303 | node_modules/
304 |
305 | # Visual Studio 6 build log
306 | *.plg
307 |
308 | # Visual Studio 6 workspace options file
309 | *.opt
310 |
311 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
312 | *.vbw
313 |
314 | # Visual Studio LightSwitch build output
315 | **/*.HTMLClient/GeneratedArtifacts
316 | **/*.DesktopClient/GeneratedArtifacts
317 | **/*.DesktopClient/ModelManifest.xml
318 | **/*.Server/GeneratedArtifacts
319 | **/*.Server/ModelManifest.xml
320 | _Pvt_Extensions
321 |
322 | # Paket dependency manager
323 | .paket/paket.exe
324 | paket-files/
325 |
326 | # FAKE - F# Make
327 | .fake/
328 |
329 | # CodeRush personal settings
330 | .cr/personal
331 |
332 | # Python Tools for Visual Studio (PTVS)
333 | __pycache__/
334 | *.pyc
335 |
336 | # Cake - Uncomment if you are using it
337 | # tools/**
338 | # !tools/packages.config
339 |
340 | # Tabs Studio
341 | *.tss
342 |
343 | # Telerik's JustMock configuration file
344 | *.jmconfig
345 |
346 | # BizTalk build output
347 | *.btp.cs
348 | *.btm.cs
349 | *.odx.cs
350 | *.xsd.cs
351 |
352 | # OpenCover UI analysis results
353 | OpenCover/
354 |
355 | # Azure Stream Analytics local run output
356 | ASALocalRun/
357 |
358 | # MSBuild Binary and Structured Log
359 | *.binlog
360 |
361 | # NVidia Nsight GPU debugger configuration file
362 | *.nvuser
363 |
364 | # MFractors (Xamarin productivity tool) working folder
365 | .mfractor/
366 |
367 | # Local History for Visual Studio
368 | .localhistory/
369 |
370 | # BeatPulse healthcheck temp database
371 | healthchecksdb
372 |
373 | # Backup folder for Package Reference Convert tool in Visual Studio 2017
374 | MigrationBackup/
375 |
376 | # Ionide (cross platform F# VS Code tools) working folder
377 | .ionide/
378 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Zero-Clause BSD
2 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
3 |
4 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
5 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
6 | INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
7 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
8 | THIS SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # About this repository
2 | This repository contains official sample code for the product TF6100|TC3 OPC UA offered by [Beckhoff Automation](https://www.beckhoff.com). The sample code is provided as-is under the Zero-Clause BSD license.
3 |
4 | # How to get support
5 | Should you have any questions regarding the provided sample code, please contact your local Beckhoff support team. Contact information can be found on the official Beckhoff website at https://www.beckhoff.com/contact/.
6 |
7 | # Further information
8 | Further information about this sample code can be found on the [Beckhoff Information System](https://infosys.beckhoff.com) in the [TF6100 documentation](https://infosys.beckhoff.com/content/1033/tf6100_tc3_opcua/index.html).
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/ClientSampleProject.plcproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.0.0.0
5 | 2.0
6 | {525b8f9c-92f8-4802-832b-9f33cd7b9ed0}
7 | ClientSampleProject
8 | 3.1.4026.13
9 | {aafff3c5-4c1a-45ca-a7b2-bc49a5188945}
10 | {e3aa1986-980c-4971-9f53-420d1d3628d5}
11 | {8b0817a1-ac23-4bd5-8a40-eac810b11dba}
12 | {127fd27f-47dd-495e-9a47-8babb4516267}
13 | {aae8d69a-4dd1-46fa-86ab-db8626894e7e}
14 | {f4b7f40a-f027-48ab-a1d5-599feda101b0}
15 | SAK
16 | SAK
17 | SAK
18 | SAK
19 |
20 |
21 |
22 | Code
23 |
24 |
25 | Code
26 |
27 |
28 | Code
29 |
30 |
31 | Code
32 |
33 |
34 | Code
35 |
36 |
37 | Code
38 |
39 |
40 | Code
41 |
42 |
43 | Code
44 |
45 |
46 | Code
47 |
48 |
49 | Code
50 |
51 |
52 | Code
53 |
54 |
55 | Code
56 |
57 |
58 | Code
59 |
60 |
61 | Code
62 |
63 |
64 | Code
65 |
66 |
67 | Code
68 |
69 |
70 | Code
71 |
72 |
73 | Code
74 |
75 |
76 | Code
77 |
78 |
79 | Code
80 |
81 |
82 | Code
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 | Tc2_Standard, * (Beckhoff Automation GmbH)
101 | Tc2_Standard
102 |
103 |
104 | Tc2_System, * (Beckhoff Automation GmbH)
105 | Tc2_System
106 |
107 |
108 | Tc3_Module, * (Beckhoff Automation GmbH)
109 | Tc3_Module
110 |
111 |
112 | Tc3_PLCopen_OpcUa, * (Beckhoff Automation GmbH)
113 | Tc3_PLCopen_OpcUa
114 |
115 |
116 |
117 |
118 | Content
119 |
120 |
121 |
122 |
123 | Tc2_Utilities
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 | "<ProjectRoot>"
132 |
133 | {A3BBA713-63D7-4de6-BEC2-E3BAAD8789F8}
134 |
135 | "{A3BBA713-63D7-4de6-BEC2-E3BAAD8789F8}"
136 |
137 |
138 |
139 | {192FAD59-8248-4824-A8DE-9177C94C195A}
140 |
141 | "{192FAD59-8248-4824-A8DE-9177C94C195A}"
142 |
143 |
144 |
145 | {8F99A816-E488-41E4-9FA3-846536012284}
146 |
147 | "{8F99A816-E488-41E4-9FA3-846536012284}"
148 |
149 |
150 |
151 | {40450F57-0AA3-4216-96F3-5444ECB29763}
152 |
153 | "{40450F57-0AA3-4216-96F3-5444ECB29763}"
154 |
155 |
156 | ActiveVisuExtensionsLength
157 | 0
158 | ActiveVisuProfile
159 | "IR0whWr8bwf8BwAA6S073gAAAACmAgAA3S1CUAAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABCxUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMQA4AAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhxWAGkAcwB1AEUAbABlAG0AMwBEAFAAYQB0AGgADw5DAG8AbQBwAGEAbgB5ABAMUwB5AHMAdABlAG0AERpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByABISVgBpAHMAdQBFAGwAZQBtAHMAEyJWAGkAcwB1AEUAbABlAG0AcwBEAGEAdABlAFQAaQBtAGUAFDBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwAVKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAWJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABciVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABgUdgBpAHMAdQBpAG4AcAB1AHQAcwAZDHMAeQBzAHQAZQBtABoYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGyZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABwIYgBvAG8AbAAdIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAeTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAfHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAgFFAAbAB1AGcAaQBuAEcAdQBpAGQAIRZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIkhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAjFFUAcABkAGEAdABlAEkAbgBmAG8AJEx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AJQ5VAHAAZABhAHQAZQBzACZMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACdMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACgWTwBiAGoAZQBjAHQAcwBUAHkAcABlAClUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKhBMAGkAYgBUAGkAdABsAGUAKxRMAGkAYgBDAG8AbQBwAGEAbgB5ACweVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMALThTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlAC4SdgBpAHMAdQBlAGwAZQBtAHMAL0g2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAwKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAxTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAyGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADMYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4ANAxMAGUAZwBhAGMAeQA1MEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADYaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgbQBwgaAUUHCQrQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAGAAAAAAAAANAMC60CAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAABgAAAAoAAADQDAutAQAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAAGAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAABgAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAGAAAAAAAAANAMC60CAAAA0A0BLRfQDwEtENAACRoERQoLBAMAAAAFAAAABgAAAAAAAADQDAutAgAAANANAS0Y0A8BLRnQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQQAAADQDQEtGtAPAS0Q0BscrQFFHR4B0AAeGgJFHwsEAwAAAAUAAAAGAAAAAAAAANAgIS0i0CMkGgJFJSYC0AAnGgVFCgsEAwAAAAMAAAAAAAAACgAAANAoC60AAAAA0AMBLSnQKgEtEtArAS0Q0AAnGgVFCgsEAwAAAAMAAAAAAAAACgAAANAoC60BAAAA0AMBLSnQKgEtEtArAS0QmiwtAUUAAQLQAAEtLtAAAS0Z0AAhLS/QMDEaA9AyC60BAAAA0DMLrRAAAADQNBytANA1MRoD0DILrQIAAADQMwutAgAAANA0HK0A0DYcrQA="
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 | System.Collections.Hashtable
168 | System.Int32
169 | {54dd0eac-a6d8-46f2-8c27-2f43c7e49861}
170 | System.String
171 |
172 |
173 |
174 |
175 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/DUTs/ST_OutputArgInfoAndData.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/DUTs/ST_ReadListData.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/DUTs/ST_ReadListData_Array.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/GVLs/GlobalSettings.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Browse/PRG_BROWSE.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
31 |
32 | nConnectionHdl
72 | );
73 |
74 | IF NOT fbUA_Connect.Busy THEN
75 | fbUA_Connect(Execute := FALSE);
76 |
77 | IF NOT fbUA_Connect.Error THEN
78 | (* session open *)
79 | iState := iState + 1;
80 | ELSE
81 | bError := TRUE;
82 | nErrorID := fbUA_Connect.ErrorID;
83 | nConnectionHdl := 0;
84 | iState := 0; (* idle *)
85 | END_IF
86 | END_IF
87 |
88 |
89 | 2: (* Browse *)
90 | fbUA_Browse(
91 | Execute := TRUE,
92 | ConnectionHdl := nConnectionHdl,
93 | BrowseDescription := stBrowseDescription,
94 | ContinuationPointIn := nContinuationPointIn,
95 | ReferenceDescriptions := stReferenceDescriptions,
96 | ContinuationPointOut => nContinuationPointOut,
97 | cbBrowseResultCount => cbBrowseResultCount
98 | );
99 |
100 | IF NOT fbUA_Browse.Busy THEN
101 | fbUA_Browse(Execute := FALSE);
102 | IF NOT fbUA_Browse.Error THEN
103 | iState := iState + 1;
104 | ELSE
105 | bError := TRUE;
106 | nErrorID := fbUA_Browse.ErrorID;
107 | iState := 3; (* idle *)
108 | END_IF
109 | END_IF
110 |
111 | 3: (* close session *)
112 | fbUA_Disconnect(
113 | Execute := TRUE,
114 | ConnectionHdl := nConnectionHdl
115 | );
116 |
117 | IF NOT fbUA_Disconnect.Busy THEN
118 | fbUA_Disconnect(Execute := FALSE);
119 | bBusy := FALSE;
120 | IF NOT fbUA_Disconnect.Error THEN
121 | (* session closed *)
122 | iState := 0;
123 | IF NOT bError THEN
124 | bDone := TRUE;
125 | END_IF
126 | ELSE
127 | bError := TRUE;
128 | nErrorID := fbUA_Disconnect.ErrorID;
129 | iState := 0; (* idle *)
130 | nConnectionHdl := 0;
131 | END_IF
132 | END_IF
133 | END_CASE
134 | ]]>
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Connect/PRG_CONNECT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
23 | nConnectionHdl
63 | );
64 |
65 | IF NOT fbUA_Connect.Busy THEN
66 | fbUA_Connect(Execute := FALSE);
67 |
68 | IF NOT fbUA_Connect.Error THEN
69 | (* session open *)
70 | iState := iState + 1;
71 | ELSE
72 | bError := TRUE;
73 | nErrorID := fbUA_Connect.ErrorID;
74 | nConnectionHdl := 0;
75 | iState := 0; (* idle *)
76 | END_IF
77 | END_IF
78 |
79 | 2: (* close session *)
80 | fbUA_Disconnect(
81 | Execute := TRUE,
82 | ConnectionHdl := nConnectionHdl
83 | );
84 |
85 | IF NOT fbUA_Disconnect.Busy THEN
86 | fbUA_Disconnect(Execute := FALSE);
87 | bBusy := FALSE;
88 | IF NOT fbUA_Disconnect.Error THEN
89 | (* session closed *)
90 | iState := 0;
91 | IF NOT bError THEN
92 | bDone := TRUE;
93 | END_IF
94 | ELSE
95 | bError := TRUE;
96 | nErrorID := fbUA_Disconnect.ErrorID;
97 | iState := 0; (* idle *)
98 | nConnectionHdl := 0;
99 | END_IF
100 | END_IF
101 | END_CASE
102 | ]]>
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Connect/PRG_GETSTATUS.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
27 |
28 | nConnectionHdl
68 | );
69 |
70 | IF NOT fbUA_Connect.Busy THEN
71 | fbUA_Connect(Execute := FALSE);
72 |
73 | IF NOT fbUA_Connect.Error THEN
74 | (* session open *)
75 | iState := iState + 1;
76 | ELSE
77 | bError := TRUE;
78 | nErrorID := fbUA_Connect.ErrorID;
79 | nConnectionHdl := 0;
80 | iState := 0; (* idle *)
81 | END_IF
82 | END_IF
83 |
84 | 2: (* Query server connection status *)
85 | fbUA_ConnectGetStatus(
86 | Execute := TRUE,
87 | ConnectionHdl := nConnectionHdl,
88 | Timeout := T#2M,
89 | GetServiceLevel := FALSE,
90 | ConnectionStatus => eUaConnectionGetStatus,
91 | ServerState => eUaServerState
92 | );
93 |
94 | IF NOT fbUA_ConnectGetStatus.Busy THEN
95 | fbUA_ConnectGetStatus(Execute := FALSE);
96 |
97 | IF NOT fbUA_ConnectGetStatus.Error THEN
98 | (* session open *)
99 | iState := iState + 1;
100 | ELSE
101 | bError := TRUE;
102 | nErrorID := fbUA_Connect.ErrorID;
103 | nConnectionHdl := 0;
104 | iState := 0; (* idle *)
105 | END_IF
106 | END_IF
107 |
108 | 3: (* close session *)
109 | fbUA_Disconnect(
110 | Execute := TRUE,
111 | ConnectionHdl := nConnectionHdl
112 | );
113 |
114 | IF NOT fbUA_Disconnect.Busy THEN
115 | fbUA_Disconnect(Execute := FALSE);
116 | bBusy := FALSE;
117 | IF NOT fbUA_Disconnect.Error THEN
118 | (* session closed *)
119 | iState := 0;
120 | IF NOT bError THEN
121 | bDone := TRUE;
122 | END_IF
123 | ELSE
124 | bError := TRUE;
125 | nErrorID := fbUA_Disconnect.ErrorID;
126 | iState := 0; (* idle *)
127 | nConnectionHdl := 0;
128 | END_IF
129 | END_IF
130 | END_CASE
131 | ]]>
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/HistoryUpdate/FB_HistoryUpdate_INT.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
43 |
44 | bBusy );
60 | nState := 1;
61 | END_IF
62 |
63 | 1: //Get Node Handle
64 | fbUANodeGetHandle(Execute := FALSE, NodeHdl=>nNodeHdl, Busy=>bBusy );
65 | IF NOT fbUANodeGetHandle.Busy THEN
66 | IF NOT fbUANodeGetHandle.Error THEN
67 | nCounter := 1;
68 | nState := 2;
69 | ELSE
70 | bError := TRUE;
71 | nErrorID := fbUANodeGetHandle.ErrorID;
72 | nState := 666; //error state
73 | END_IF
74 | END_IF
75 |
76 | 2: //UA_HistoryUpdate
77 | IF bSample THEN
78 | aDataValues[nCounter].Value := pValue;
79 | aDataValues[nCounter].StatusCode := UAHAUpdateStatusCode.HistorianRaw;
80 | aDataValues[nCounter].ServerTimeStamp := F_GetSystemTime();
81 | aDataValues[nCounter].SourceTimeStamp := aDataValues[nCounter].ServerTimeStamp;
82 | nCounter := nCounter + 1;
83 |
84 | IF nCounter > cBufferSize THEN
85 | fbUAHistoryUpdate.Execute := TRUE;
86 | nCounter := 1;
87 | END_IF
88 | END_IF
89 |
90 | fbUAHistoryUpdate( Execute := , //already set above
91 | ConnectionHdl := nConnectionHdl,
92 | NodeHdl := nNodeHdl,
93 | PerformInsert := TRUE,
94 | PerformReplace := FALSE,
95 | DataValueCount := cBufferSize,
96 | DataValues := aDataValues,
97 | ValueErrorIDs := aValueErrorIDs,
98 | Busy => bBusy );
99 |
100 | IF NOT fbUAHistoryUpdate.Busy THEN
101 | IF NOT fbUAHistoryUpdate.Error THEN
102 | IF bStop THEN
103 | nState := 3; //Release Node Handle
104 | END_IF
105 | ELSE
106 | bError := TRUE;
107 | nErrorID := fbUAHistoryUpdate.ErrorID;
108 | nState := 666; //error state
109 | END_IF
110 | fbUAHistoryUpdate( Execute := FALSE,
111 | DataValues := aDataValues,
112 | ValueErrorIDs := aValueErrorIDs,
113 | Busy => bBusy );
114 | END_IF
115 |
116 | 3: //Release Node Handle
117 | fbUANodeReleaseHandle( Execute := TRUE,
118 | ConnectionHdl := nConnectionHdl,
119 | NodeHdl := nNodeHdl,
120 | Busy => bBusy );
121 |
122 | IF NOT fbUANodeReleaseHandle.Busy THEN
123 | IF NOT fbUANodeReleaseHandle.Error THEN
124 | nState := 0;
125 | nNodeHdl := 0;
126 | ELSE
127 | bError := TRUE;
128 | nErrorID := fbUANodeReleaseHandle.ErrorID;
129 | nState := 666; //error state
130 | END_IF
131 | fbUANodeReleaseHandle(Execute := FALSE, Busy => bBusy );
132 | END_IF
133 |
134 | 666: //error state
135 |
136 | END_CASE
137 | ]]>
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/HistoryUpdate/FB_HistoryUpdate_LREAL.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
43 |
44 | bBusy );
60 | nState := 1;
61 | END_IF
62 |
63 | 1: //Get Node Handle
64 | fbUANodeGetHandle(Execute := FALSE, NodeHdl=>nNodeHdl, Busy=>bBusy );
65 | IF NOT fbUANodeGetHandle.Busy THEN
66 | IF NOT fbUANodeGetHandle.Error THEN
67 | nCounter := 1;
68 | nState := 2;
69 | ELSE
70 | bError := TRUE;
71 | nErrorID := fbUANodeGetHandle.ErrorID;
72 | nState := 666; //error state
73 | END_IF
74 | END_IF
75 |
76 | 2: //UA_HistoryUpdate
77 | IF bSample THEN
78 | aDataValues[nCounter].Value := pValue;
79 | aDataValues[nCounter].StatusCode := UAHAUpdateStatusCode.HistorianRaw;
80 | aDataValues[nCounter].ServerTimeStamp := F_GetSystemTime();
81 | aDataValues[nCounter].SourceTimeStamp := aDataValues[nCounter].ServerTimeStamp;
82 | nCounter := nCounter + 1;
83 |
84 | IF nCounter > cBufferSize THEN
85 | fbUAHistoryUpdate.Execute := TRUE;
86 | nCounter := 1;
87 | END_IF
88 | END_IF
89 |
90 | fbUAHistoryUpdate( Execute := , //already set above
91 | ConnectionHdl := nConnectionHdl,
92 | NodeHdl := nNodeHdl,
93 | PerformInsert := TRUE,
94 | PerformReplace := FALSE,
95 | DataValueCount := cBufferSize,
96 | DataValues := aDataValues,
97 | ValueErrorIDs := aValueErrorIDs,
98 | Busy => bBusy );
99 |
100 | IF NOT fbUAHistoryUpdate.Busy THEN
101 | IF NOT fbUAHistoryUpdate.Error THEN
102 | IF bStop THEN
103 | nState := 3; //Release Node Handle
104 | END_IF
105 | ELSE
106 | bError := TRUE;
107 | nErrorID := fbUAHistoryUpdate.ErrorID;
108 | nState := 666; //error state
109 | END_IF
110 | fbUAHistoryUpdate( Execute := FALSE,
111 | DataValues := aDataValues,
112 | ValueErrorIDs := aValueErrorIDs,
113 | Busy => bBusy );
114 | END_IF
115 |
116 | 3: //Release Node Handle
117 | fbUANodeReleaseHandle( Execute := TRUE,
118 | ConnectionHdl := nConnectionHdl,
119 | NodeHdl := nNodeHdl,
120 | Busy => bBusy );
121 |
122 | IF NOT fbUANodeReleaseHandle.Busy THEN
123 | IF NOT fbUANodeReleaseHandle.Error THEN
124 | nState := 0;
125 | nNodeHdl := 0;
126 | ELSE
127 | bError := TRUE;
128 | nErrorID := fbUANodeReleaseHandle.ErrorID;
129 | nState := 666; //error state
130 | END_IF
131 | fbUANodeReleaseHandle(Execute := FALSE, Busy => bBusy );
132 | END_IF
133 |
134 | 666: //error state
135 |
136 | END_CASE
137 | ]]>
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/HistoryUpdate/PRG_HA_MultipleNodes.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
48 |
49 | nConnectionHdl );
91 |
92 | IF NOT fbUAConnect.Busy THEN
93 | IF NOT fbUAConnect.Error THEN
94 | nState := 2;
95 | ELSE
96 | bError := TRUE;
97 | nErrorID := fbUAConnect.ErrorID;
98 | nConnectionHdl := 0;
99 | nState := 0; //Idle
100 | END_IF
101 | fbUAConnect(Execute := FALSE);
102 | END_IF
103 |
104 | 2: //Get NS Index
105 | fbUAGetNamespaceIndex( Execute := TRUE,
106 | ConnectionHdl := nConnectionHdl,
107 | NamespaceUri := cNamespaceUri,
108 | NamespaceIndex => nNamespaceIndex );
109 |
110 | IF NOT fbUAGetNamespaceIndex.Busy THEN
111 | IF NOT fbUAGetNamespaceIndex.Error THEN
112 | nState := 3;
113 | ELSE
114 | bError := TRUE;
115 | nErrorID := fbUAGetNamespaceIndex.ErrorID;
116 | nState := 6; //Close Connection
117 | END_IF
118 | fbUAGetNamespaceIndex(Execute := FALSE);
119 | END_IF
120 |
121 | 3: //Get Node Handle & HistoryUpdate & ReleaseHandle
122 | //every three seconds the values should be updated for one second long.
123 | fbTimer(IN:=TRUE);
124 | IF fbTimer.ET > T#2S THEN
125 | bSample := TRUE;
126 | END_IF
127 | IF fbTimer.Q THEN
128 | bSample :=FALSE;
129 | fbTimer(IN:=FALSE);
130 | END_IF
131 |
132 | fbHistoryUpdateNode1( bSample:=bSample, bStop:=bStop,
133 | nConnectionHdl:=nConnectionHdl,
134 | nNamespaceIndex:=nNamespaceIndex,
135 | pValue:=ADR(nMyValue1) );
136 | IF fbHistoryUpdateNode1.bError THEN
137 | bError := TRUE;
138 | nErrorID := fbHistoryUpdateNode1.nErrorID;
139 | END_IF
140 |
141 | fbHistoryUpdateNode2( bSample:=bSample, bStop:=bStop,
142 | nConnectionHdl:=nConnectionHdl,
143 | nNamespaceIndex:=nNamespaceIndex,
144 | pValue:=ADR(nMyValue2) );
145 | IF fbHistoryUpdateNode2.bError THEN
146 | bError := TRUE;
147 | nErrorID := fbHistoryUpdateNode2.nErrorID;
148 | END_IF
149 |
150 | fbHistoryUpdateNode3( bSample:=bSample, bStop:=bStop,
151 | nConnectionHdl:=nConnectionHdl,
152 | nNamespaceIndex:=nNamespaceIndex,
153 | pValue:=ADR(fMyValue3) );
154 | IF fbHistoryUpdateNode2.bError THEN
155 | bError := TRUE;
156 | nErrorID := fbHistoryUpdateNode3.nErrorID;
157 | END_IF
158 |
159 | IF bStop AND NOT fbHistoryUpdateNode1.bBusy AND fbHistoryUpdateNode1.nNodeHdl = 0
160 | AND NOT fbHistoryUpdateNode2.bBusy AND fbHistoryUpdateNode2.nNodeHdl = 0
161 | AND NOT fbHistoryUpdateNode3.bBusy AND fbHistoryUpdateNode3.nNodeHdl = 0 THEN
162 | bStop := FALSE;
163 | nState := 6; //Close Connection
164 | END_IF
165 |
166 | 6: //Close Session
167 | fbUADisconnect( Execute := TRUE, ConnectionHdl := nConnectionHdl );
168 |
169 | IF NOT fbUADisconnect.Busy THEN
170 | IF fbUADisconnect.Error THEN
171 | bError := TRUE;
172 | nErrorID := fbUADisconnect.ErrorID;
173 | nConnectionHdl := 0;
174 | END_IF
175 | fbUADisconnect(Execute := FALSE);
176 | nState := 0; //Idle
177 | END_IF
178 |
179 | END_CASE
180 | ]]>
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/HistoryUpdate/PRG_HA_SingleNode.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
55 |
56 | nConnectionHdl );
97 |
98 | IF NOT fbUAConnect.Busy THEN
99 | IF NOT fbUAConnect.Error THEN
100 | nState := 2;
101 | ELSE
102 | bError := TRUE;
103 | nErrorID := fbUAConnect.ErrorID;
104 | nConnectionHdl := 0;
105 | nState := 0; //Idle
106 | END_IF
107 | fbUAConnect(Execute := FALSE);
108 | END_IF
109 |
110 | 2: //Get NS Index
111 | fbUAGetNamespaceIndex( Execute := TRUE,
112 | ConnectionHdl := nConnectionHdl,
113 | NamespaceUri := cNamespaceUri,
114 | NamespaceIndex => nNamespaceIndex );
115 |
116 | IF NOT fbUAGetNamespaceIndex.Busy THEN
117 | IF NOT fbUAGetNamespaceIndex.Error THEN
118 | nState := 3;
119 | ELSE
120 | bError := TRUE;
121 | nErrorID := fbUAGetNamespaceIndex.ErrorID;
122 | nState := 6; //Close Connection
123 | END_IF
124 | fbUAGetNamespaceIndex(Execute := FALSE);
125 | END_IF
126 |
127 | 3: //Get Node Handle
128 | NodeID.eIdentifierType := eUAIdentifierType_String;
129 | NodeID.nNamespaceIndex := nNamespaceIndex;
130 | NodeID.sIdentifier := sNodeIdentifier;
131 |
132 | fbUANodeGetHandle( Execute := TRUE,
133 | ConnectionHdl := nConnectionHdl,
134 | NodeID := NodeID,
135 | NodeHdl => nNodeHdl );
136 |
137 | IF NOT fbUANodeGetHandle.Busy THEN
138 | IF NOT fbUANodeGetHandle.Error THEN
139 | nState := 4;
140 | ELSE
141 | bError := TRUE;
142 | nErrorID := fbUANodeGetHandle.ErrorID;
143 | nState := 6; //Close Connection
144 | END_IF
145 | fbUANodeGetHandle(Execute := FALSE);
146 | END_IF
147 |
148 | 4: //UA_HistoryUpdate
149 | IF bSample THEN
150 | aDataValues[nCounter].Value := ADR(nMyValue);
151 | aDataValues[nCounter].StatusCode := UAHAUpdateStatusCode.HistorianRaw;
152 | aDataValues[nCounter].ServerTimeStamp := F_GetSystemTime();
153 | aDataValues[nCounter].SourceTimeStamp := aDataValues[nCounter].ServerTimeStamp;
154 | nCounter := nCounter + 1;
155 |
156 | IF nCounter > cBufferSize THEN
157 | fbUAHistoryUpdate.Execute := TRUE;
158 | nCounter := 1;
159 | END_IF
160 | END_IF
161 |
162 | fbUAHistoryUpdate( Execute := , //already set above
163 | ConnectionHdl := nConnectionHdl,
164 | NodeHdl := nNodeHdl,
165 | PerformInsert := TRUE,
166 | PerformReplace := FALSE,
167 | DataValueCount := cBufferSize,
168 | DataValues := aDataValues,
169 | ValueErrorIDs := aValueErrorIDs );
170 |
171 | IF NOT fbUAHistoryUpdate.Busy THEN
172 | IF NOT fbUAHistoryUpdate.Error THEN
173 | IF bStop THEN
174 | bStop := FALSE;
175 | nState := 5;
176 | END_IF
177 | ELSE
178 | bError := TRUE;
179 | nErrorID := fbUAHistoryUpdate.ErrorID;
180 | nState := 5; //Release Node Handle
181 | END_IF
182 | fbUAHistoryUpdate( Execute := FALSE,
183 | DataValues := aDataValues,
184 | ValueErrorIDs := aValueErrorIDs);
185 | END_IF
186 |
187 | 5: //Release Node Handle
188 | fbUANodeReleaseHandle( Execute := TRUE,
189 | ConnectionHdl := nConnectionHdl,
190 | NodeHdl := nNodeHdl );
191 |
192 | IF NOT fbUANodeReleaseHandle.Busy THEN
193 | IF fbUANodeReleaseHandle.Error THEN
194 | bError := TRUE;
195 | nErrorID := fbUANodeReleaseHandle.ErrorID;
196 | END_IF
197 | fbUANodeReleaseHandle(Execute := FALSE);
198 | nState := 6; //Close Connection
199 | END_IF
200 |
201 | 6: //Close Session
202 | fbUADisconnect( Execute := TRUE, ConnectionHdl := nConnectionHdl );
203 |
204 | IF NOT fbUADisconnect.Busy THEN
205 | IF fbUADisconnect.Error THEN
206 | bError := TRUE;
207 | nErrorID := fbUADisconnect.ErrorID;
208 | nConnectionHdl := 0;
209 | END_IF
210 | fbUADisconnect(Execute := FALSE);
211 | nState := 0;
212 | END_IF
213 | END_CASE
214 | ]]>
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/MethodCall/PRG_METHOD_NOARGS.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
44 |
45 | nConnectionHdl
86 | );
87 |
88 | IF NOT fbUA_Connect.Busy THEN
89 | fbUA_Connect(Execute := FALSE);
90 |
91 | IF NOT fbUA_Connect.Error THEN
92 | (* connected *)
93 | iState := iState + 1;
94 | ELSE
95 | bError := TRUE;
96 | nErrorID := fbUA_Connect.ErrorID;
97 | nConnectionHdl := 0;
98 | iState := 0; (* idle *)
99 | END_IF
100 | END_IF
101 |
102 |
103 | 2: (* GetNS Index *)
104 | fbUA_GetNamespaceIndex(
105 | Execute := TRUE,
106 | ConnectionHdl := nConnectionHdl,
107 | NamespaceUri := sNamespaceUri,
108 | NamespaceIndex => nNamespaceIndex
109 | );
110 |
111 | IF NOT fbUA_GetNamespaceIndex.Busy THEN
112 | fbUA_GetNamespaceIndex(Execute := FALSE);
113 |
114 | IF NOT fbUA_GetNamespaceIndex.Error THEN
115 | (* namespace index read successfully *)
116 | iState := iState + 1;
117 | ELSE
118 | bError := TRUE;
119 | nErrorID := fbUA_GetNamespaceIndex.ErrorID;
120 | iState := 7; (* disconnect *)
121 | END_IF
122 | END_IF
123 |
124 |
125 | 3: (* Get Method Handle *)
126 | ObjectNodeID.eIdentifierType := eUAIdentifierType_String;
127 | ObjectNodeID.nNamespaceIndex := nNamespaceIndex;
128 | ObjectNodeID.sIdentifier := sObjectNodeIdIdentifier;
129 |
130 | MethodNodeID.eIdentifierType := eUAIdentifierType_String;
131 | MethodNodeID.nNamespaceIndex := nNamespaceIndex;
132 | MethodNodeID.sIdentifier := sMethodNodeIdIdentifier;
133 |
134 | IF bInputDataError = FALSE THEN
135 | iState := iState + 1;
136 | ELSE
137 | bBusy := FALSE;
138 | bError := TRUE;
139 | nErrorID := 16#70A; //out of memory
140 | END_IF
141 |
142 |
143 | 4: (* Method Get Handle *)
144 | fbUA_MethodGetHandle(
145 | Execute := TRUE,
146 | ConnectionHdl := nConnectionHdl,
147 | ObjectNodeID := ObjectNodeID,
148 | MethodNodeID := MethodNodeID,
149 | MethodHdl => nMethodHdl
150 | );
151 | IF NOT fbUA_MethodGetHandle.Busy THEN
152 | fbUA_MethodGetHandle(Execute := FALSE);
153 |
154 | IF NOT fbUA_MethodGetHandle.Error THEN
155 | (* *)
156 | iState := iState + 1; (* Call Method *)
157 | ELSE
158 | bError := TRUE;
159 | nErrorID := fbUA_MethodGetHandle.ErrorID;
160 | iState := 6; (* Release method Handle *)
161 | END_IF
162 | END_IF
163 |
164 |
165 | 5: (* Method Call *)
166 |
167 | (* When calling a method without any input or output arguments, the status code of the method call has to be processed anyway.
168 | Therefore, there has to be stOutputArgInfoAndData even if there is no output argument in the method itself.*)
169 | fbUA_MethodCall(
170 | Execute := TRUE,
171 | ConnectionHdl := nConnectionHdl,
172 | MethodHdl := nMethodHdl,
173 | nNumberOfInputArguments := 0,
174 | pInputArgInfo := 0,
175 | cbInputArgInfo := 0,
176 | pInputArgData := 0,
177 | cbInputArgData := 0,
178 | pInputWriteData := 0,
179 | cbInputWriteData := 0,
180 | nNumberOfOutputArguments:= 0,
181 | pOutputArgInfo := 0,
182 | cbOutputArgInfo := 0,
183 | pOutputArgInfoAndData := ADR(stOutputArgInfoAndData),
184 | cbOutputArgInfoAndData := SIZEOF(stOutputArgInfoAndData)
185 | );
186 | IF NOT fbUA_MethodCall.Busy THEN
187 | fbUA_MethodCall(Execute := FALSE);
188 | IF NOT fbUA_MethodCall.Error THEN
189 | (* clear data and restart *)
190 | iState := iState + 1; (* Release handle *)
191 | ELSE
192 | bError := TRUE;
193 | nErrorID := fbUA_MethodCall.ErrorID;
194 | iState := 6; (* Release method handle *)
195 | END_IF
196 | END_IF
197 |
198 |
199 | 6: (* Release Method Handle *)
200 | fbUA_MethodReleaseHandle(
201 | Execute := TRUE,
202 | ConnectionHdl := nConnectionHdl,
203 | MethodHdl := nMethodHdl
204 | );
205 |
206 | IF NOT fbUA_MethodReleaseHandle.Busy THEN
207 | fbUA_MethodReleaseHandle(Execute := FALSE);
208 | bBusy := FALSE;
209 | IF NOT fbUA_MethodReleaseHandle.Error THEN
210 | (* session closed *)
211 | iState := 7; (* Disconnect *)
212 | ELSE
213 | bError := TRUE;
214 | nErrorID := fbUA_MethodReleaseHandle.ErrorID;
215 | iState := 7; (* Disconnect *)
216 | END_IF
217 | END_IF
218 |
219 |
220 | 7: (* Disconnect *)
221 | fbUA_Disconnect(
222 | Execute := TRUE,
223 | ConnectionHdl := nConnectionHdl
224 | );
225 |
226 | IF NOT fbUA_Disconnect.Busy THEN
227 | fbUA_Disconnect(Execute := FALSE);
228 |
229 | IF NOT fbUA_Disconnect.Error THEN
230 | (* disconnected *)
231 | iState := 0; (* idle *)
232 | bDone := TRUE;
233 | bBusy := FALSE;
234 | ELSE
235 | bBusy := FALSE;
236 | bError := TRUE;
237 | nErrorID := fbUA_Disconnect.ErrorID;
238 | iState := 0; (* idle *)
239 | nConnectionHdl := 0;
240 | END_IF
241 | END_IF
242 | END_CASE
243 | ]]>
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Read/PRG_READ.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
43 |
44 | nConnectionHdl
89 | );
90 |
91 | IF NOT fbUA_Connect.Busy THEN
92 | fbUA_Connect(Execute := FALSE);
93 |
94 | IF NOT fbUA_Connect.Error THEN
95 | (* session open *)
96 | iState := iState + 1;
97 | ELSE
98 | bError := TRUE;
99 | nErrorID := fbUA_Connect.ErrorID;
100 | nConnectionHdl := 0;
101 | iState := 0; (* idle *)
102 | END_IF
103 | END_IF
104 |
105 |
106 | 2: (* GetNS Index *)
107 | fbUA_GetNamespaceIndex(
108 | Execute := TRUE,
109 | ConnectionHdl := nConnectionHdl,
110 | NamespaceUri := sNamespaceUri,
111 | NamespaceIndex => nNamespaceIndex
112 | );
113 |
114 | IF NOT fbUA_GetNamespaceIndex.Busy THEN
115 | fbUA_GetNamespaceIndex(Execute := FALSE);
116 | IF NOT fbUA_GetNamespaceIndex.Error THEN
117 | iState := iState + 1;
118 | ELSE
119 | bError := TRUE;
120 | nErrorID := fbUA_GetNamespaceIndex.ErrorID;
121 | iState := 6; (* idle *)
122 | END_IF
123 | END_IF
124 |
125 | 3: (* Get Node Handle *)
126 | NodeID.eIdentifierType := eUAIdentifierType_String;
127 | NodeID.nNamespaceIndex := nNamespaceIndex;
128 | NodeID.sIdentifier := sNodeIdentifier;
129 | fbUA_NodeGetHandle(
130 | Execute := TRUE,
131 | ConnectionHdl := nConnectionHdl,
132 | NodeID := NodeID,
133 | NodeHdl => nNodeHdl
134 | );
135 |
136 | IF NOT fbUA_NodeGetHandle.Busy THEN
137 | fbUA_NodeGetHandle(Execute := FALSE);
138 |
139 | IF NOT fbUA_NodeGetHandle.Error THEN
140 | iState := iState + 1;
141 | ELSE
142 | bError := TRUE;
143 | nErrorID := fbUA_NodeGetHandle.ErrorID;
144 | iState := 6; (* idle *)
145 | END_IF
146 | END_IF
147 |
148 |
149 | 4: (* UA_Read *)
150 | fbUA_Read(
151 | Execute := TRUE,
152 | ConnectionHdl := nConnectionHdl,
153 | NodeHdl := nNodeHdl,
154 | cbData := SIZEOF(nReadData),
155 | stNodeAddInfo := stNodeAddInfo,
156 | pVariable := ADR(nReadData)
157 | );
158 |
159 | IF NOT fbUA_Read.Busy THEN
160 | fbUA_Read( Execute := FALSE, cbData_R => cbDataRead);
161 |
162 | IF NOT fbUA_Read.Error THEN
163 | iState := iState + 1;
164 | ELSE
165 | bError := TRUE;
166 | nErrorID := fbUA_Read.ErrorID;
167 | iState := 6; (* idle *)
168 | END_IF
169 | END_IF
170 |
171 |
172 | 5: (* Release Node Handle *)
173 | fbUA_NodeReleaseHandle(
174 | Execute := TRUE,
175 | ConnectionHdl := nConnectionHdl,
176 | NodeHdl := nNodeHdl
177 | );
178 |
179 | IF NOT fbUA_NodeReleaseHandle.Busy THEN
180 | fbUA_NodeReleaseHandle(Execute := FALSE);
181 |
182 | IF NOT fbUA_NodeReleaseHandle.Error THEN
183 | iState := iState + 1;
184 | ELSE
185 | bError := TRUE;
186 | nErrorID := fbUA_NodeReleaseHandle.ErrorID;
187 | iState := 6; (* idle *)
188 | END_IF
189 | END_IF
190 |
191 |
192 | 6: (* close session *)
193 | fbUA_Disconnect(
194 | Execute := TRUE,
195 | ConnectionHdl := nConnectionHdl
196 | );
197 |
198 | IF NOT fbUA_Disconnect.Busy THEN
199 | fbUA_Disconnect(Execute := FALSE);
200 | bBusy := FALSE;
201 | IF NOT fbUA_Disconnect.Error THEN
202 | (* session closed *)
203 | iState := 0;
204 | IF NOT bError THEN
205 | bDone := TRUE;
206 | END_IF
207 | ELSE
208 | bError := TRUE;
209 | nErrorID := fbUA_Disconnect.ErrorID;
210 | iState := 0; (* idle *)
211 | nConnectionHdl := 0;
212 | END_IF
213 | END_IF
214 | END_CASE
215 | ]]>
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Read/PRG_READ_IndexRange.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
43 |
44 | nConnectionHdl
89 | );
90 |
91 | IF NOT fbUA_Connect.Busy THEN
92 | fbUA_Connect(Execute := FALSE);
93 |
94 | IF NOT fbUA_Connect.Error THEN
95 | (* session open *)
96 | iState := iState + 1;
97 | ELSE
98 | bError := TRUE;
99 | nErrorID := fbUA_Connect.ErrorID;
100 | nConnectionHdl := 0;
101 | iState := 0; (* idle *)
102 | END_IF
103 | END_IF
104 |
105 |
106 | 2: (* GetNS Index *)
107 | fbUA_GetNamespaceIndex(
108 | Execute := TRUE,
109 | ConnectionHdl := nConnectionHdl,
110 | NamespaceUri := sNamespaceUri,
111 | NamespaceIndex => nNamespaceIndex
112 | );
113 |
114 | IF NOT fbUA_GetNamespaceIndex.Busy THEN
115 | fbUA_GetNamespaceIndex(Execute := FALSE);
116 | IF NOT fbUA_GetNamespaceIndex.Error THEN
117 | iState := iState + 1;
118 | ELSE
119 | bError := TRUE;
120 | nErrorID := fbUA_GetNamespaceIndex.ErrorID;
121 | iState := 6; (* idle *)
122 | END_IF
123 | END_IF
124 |
125 | 3: (* Get Node Handle *)
126 | NodeID.eIdentifierType := eUAIdentifierType_String;
127 | NodeID.nNamespaceIndex := nNamespaceIndex;
128 | NodeID.sIdentifier := sNodeIdentifier;
129 | fbUA_NodeGetHandle(
130 | Execute := TRUE,
131 | ConnectionHdl := nConnectionHdl,
132 | NodeID := NodeID,
133 | NodeHdl => nNodeHdl
134 | );
135 |
136 | IF NOT fbUA_NodeGetHandle.Busy THEN
137 | fbUA_NodeGetHandle(Execute := FALSE);
138 |
139 | IF NOT fbUA_NodeGetHandle.Error THEN
140 | iState := iState + 1;
141 | ELSE
142 | bError := TRUE;
143 | nErrorID := fbUA_NodeGetHandle.ErrorID;
144 | iState := 6; (* idle *)
145 | END_IF
146 | END_IF
147 |
148 |
149 | 4: (* UA_Read *)
150 | fbUA_Read(
151 | Execute := TRUE,
152 | ConnectionHdl := nConnectionHdl,
153 | NodeHdl := nNodeHdl,
154 | cbData := SIZEOF(nReadData),
155 | stNodeAddInfo := stNodeAddInfo,
156 | pVariable := ADR(nReadData)
157 | );
158 |
159 | IF NOT fbUA_Read.Busy THEN
160 | fbUA_Read( Execute := FALSE, cbData_R => cbDataRead);
161 |
162 | IF NOT fbUA_Read.Error THEN
163 | iState := iState + 1;
164 | ELSE
165 | bError := TRUE;
166 | nErrorID := fbUA_Read.ErrorID;
167 | iState := 6; (* idle *)
168 | END_IF
169 | END_IF
170 |
171 |
172 | 5: (* Release Node Handle *)
173 | fbUA_NodeReleaseHandle(
174 | Execute := TRUE,
175 | ConnectionHdl := nConnectionHdl,
176 | NodeHdl := nNodeHdl
177 | );
178 |
179 | IF NOT fbUA_NodeReleaseHandle.Busy THEN
180 | fbUA_NodeReleaseHandle(Execute := FALSE);
181 |
182 | IF NOT fbUA_NodeReleaseHandle.Error THEN
183 | iState := iState + 1;
184 | ELSE
185 | bError := TRUE;
186 | nErrorID := fbUA_NodeReleaseHandle.ErrorID;
187 | iState := 6; (* idle *)
188 | END_IF
189 | END_IF
190 |
191 |
192 | 6: (* close session *)
193 | fbUA_Disconnect(
194 | Execute := TRUE,
195 | ConnectionHdl := nConnectionHdl
196 | );
197 |
198 | IF NOT fbUA_Disconnect.Busy THEN
199 | fbUA_Disconnect(Execute := FALSE);
200 | bBusy := FALSE;
201 | IF NOT fbUA_Disconnect.Error THEN
202 | (* session closed *)
203 | iState := 0;
204 | IF NOT bError THEN
205 | bDone := TRUE;
206 | END_IF
207 | ELSE
208 | bError := TRUE;
209 | nErrorID := fbUA_Disconnect.ErrorID;
210 | iState := 0; (* idle *)
211 | nConnectionHdl := 0;
212 | END_IF
213 | END_IF
214 | END_CASE
215 | ]]>
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Read/PRG_READ_List.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
40 |
41 | nConnectionHdl
81 | );
82 |
83 | IF NOT fbUA_ConnectEx.Busy THEN
84 | fbUA_ConnectEx(Execute := FALSE);
85 |
86 | IF NOT fbUA_ConnectEx.Error THEN
87 | (* session open *)
88 | iState := iState + 1;
89 | ELSE
90 | bError := TRUE;
91 | nErrorID := fbUA_ConnectEx.ErrorID;
92 | nConnectionHdl := 0;
93 | iState := 0; (* idle *)
94 | END_IF
95 | END_IF
96 |
97 |
98 | 2: (* GetNS Index *)
99 | fbUA_GetNamespaceIndex(
100 | Execute := TRUE,
101 | ConnectionHdl := nConnectionHdl,
102 | NamespaceUri := sNamespaceUri,
103 | NamespaceIndex => nNamespaceIndex
104 | );
105 |
106 | IF NOT fbUA_GetNamespaceIndex.Busy THEN
107 | fbUA_GetNamespaceIndex(Execute := FALSE);
108 | IF NOT fbUA_GetNamespaceIndex.Error THEN
109 | (* session closed *)
110 | iState := iState + 1; (* idle *)
111 | ELSE
112 | bError := TRUE;
113 | nErrorID := fbUA_GetNamespaceIndex.ErrorID;
114 | iState := 6; (* idle *)
115 | END_IF
116 | END_IF
117 |
118 |
119 | 3: (* Get Node Handle *)
120 |
121 | NodeIDs[1].eIdentifierType := eUAIdentifierType_String;
122 | NodeIDs[1].nNamespaceIndex := nNamespaceIndex;
123 | NodeIDs[1].sIdentifier := 'MAIN.iVar1';
124 |
125 | NodeIDs[2].eIdentifierType := eUAIdentifierType_String;
126 | NodeIDs[2].nNamespaceIndex := nNamespaceIndex;
127 | NodeIDs[2].sIdentifier := 'MAIN.iVar2';
128 |
129 | fbUA_NodeGetHandleList(
130 | Execute := TRUE,
131 | ConnectionHdl := nConnectionHdl,
132 | NodeIDCount := NodeIDCount,
133 | NodeIDs := NodeIDs,
134 | NodeHdls => nNodeHdls
135 | );
136 |
137 | IF NOT fbUA_NodeGetHandleList.Busy THEN
138 | fbUA_NodeGetHandleList(Execute := FALSE);
139 |
140 | IF NOT fbUA_NodeGetHandleList.Error THEN
141 | (* session closed *)
142 | iState := iState + 1; (* idle *)
143 | ELSE
144 | bError := TRUE;
145 | nErrorID := fbUA_NodeGetHandleList.ErrorID;
146 | iState := 6; (* idle *)
147 | END_IF
148 | END_IF
149 |
150 |
151 | 4: (* UA_Read *)
152 | cbData[1] := SIZEOF(stReadListData.nIntVar1);
153 | cbData[2] := SIZEOF(stReadListData.nIntVar2);
154 | cbDataTotal := SIZEOF(stReadListData);
155 | fbUA_ReadList(
156 | Execute := TRUE,
157 | ConnectionHdl := nConnectionHdl,
158 | NodeHdlCount := NodeHdlCount, // 2
159 | NodeHdls := nNodeHdls,
160 | stNodeAddInfo := stNodeAddInfo,
161 | pVariable := ADR(stReadListData),
162 | cbData := cbData ,
163 | cbDataTotal := cbDataTotal
164 | );
165 |
166 | IF NOT fbUA_ReadList.Busy THEN
167 | fbUA_ReadList( Execute := FALSE, cbData_R => cbData_R);
168 |
169 | IF NOT fbUA_ReadList.Error THEN
170 | (* session closed *)
171 | iState := iState + 1; (* idle *)
172 | ELSE
173 | bError := TRUE;
174 | nErrorID := fbUA_ReadList.ErrorID;
175 | iState := 6; (* idle *)
176 | END_IF
177 | END_IF
178 |
179 |
180 | 5: (* Release Node Handle *)
181 | fbUA_NodeReleaseHandleList(
182 | Execute := TRUE,
183 | ConnectionHdl := nConnectionHdl,
184 | NodeHdlCount := NodeHdlCount,
185 | NodeHdls := nNodeHdls
186 | );
187 |
188 | IF NOT fbUA_NodeReleaseHandleList.Busy THEN
189 | fbUA_NodeReleaseHandleList(Execute := FALSE);
190 |
191 | IF NOT fbUA_NodeReleaseHandleList.Error THEN
192 | (* session closed *)
193 | iState := iState + 1; (* idle *)
194 | ELSE
195 | bError := TRUE;
196 | nErrorID := fbUA_NodeReleaseHandleList.ErrorID;
197 | iState := 6; (* idle *)
198 | END_IF
199 | END_IF
200 |
201 |
202 | 6: (* close session *)
203 | fbUA_Disconnect(
204 | Execute := TRUE,
205 | ConnectionHdl := nConnectionHdl
206 | );
207 |
208 | IF NOT fbUA_Disconnect.Busy THEN
209 | fbUA_Disconnect(Execute := FALSE);
210 | bBusy := FALSE;
211 | IF NOT fbUA_Disconnect.Error THEN
212 | (* session closed *)
213 | iState := 0; (* idle *)
214 | IF NOT bError THEN
215 | bDone := TRUE;
216 | END_IF
217 | ELSE
218 | bError := TRUE;
219 | nErrorID := fbUA_Disconnect.ErrorID;
220 | iState := 0; (* idle *)
221 | nConnectionHdl := 0;
222 | END_IF
223 | END_IF
224 | END_CASE
225 | ]]>
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Read/PRG_READ_List_Array.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
39 |
40 | nConnectionHdl
80 | );
81 |
82 | IF NOT fbUA_Connect.Busy THEN
83 | fbUA_Connect(Execute := FALSE);
84 |
85 | IF NOT fbUA_Connect.Error THEN
86 | (* session open *)
87 | iState := iState + 1;
88 | ELSE
89 | bError := TRUE;
90 | nErrorID := fbUA_Connect.ErrorID;
91 | nConnectionHdl := 0;
92 | iState := 0; (* idle *)
93 | END_IF
94 | END_IF
95 |
96 |
97 | 2: (* GetNS Index *)
98 | fbUA_GetNamespaceIndex(
99 | Execute := TRUE,
100 | ConnectionHdl := nConnectionHdl,
101 | NamespaceUri := sNamespaceUri,
102 | NamespaceIndex => nNamespaceIndex
103 | );
104 |
105 | IF NOT fbUA_GetNamespaceIndex.Busy THEN
106 | fbUA_GetNamespaceIndex(Execute := FALSE);
107 | IF NOT fbUA_GetNamespaceIndex.Error THEN
108 | (* session closed *)
109 | iState := iState + 1; (* idle *)
110 | ELSE
111 | bError := TRUE;
112 | nErrorID := fbUA_GetNamespaceIndex.ErrorID;
113 | iState := 6; (* idle *)
114 | END_IF
115 | END_IF
116 |
117 |
118 | 3: (* Get Node Handle *)
119 |
120 | nNodeIdx := 1;
121 | NodeIDs[nNodeIdx].eIdentifierType := eUAIdentifierType_String;
122 | NodeIDs[nNodeIdx].nNamespaceIndex := nNamespaceIndex;
123 | NodeIDs[nNodeIdx].sIdentifier := 'MAIN.iArrayIntVar1';
124 |
125 | nNodeIdx := nNodeIdx + 1;
126 | NodeIDs[nNodeIdx].eIdentifierType := eUAIdentifierType_String;
127 | NodeIDs[nNodeIdx].nNamespaceIndex := nNamespaceIndex;
128 | NodeIDs[nNodeIdx].sIdentifier := 'MAIN.iArrayIntVar2';
129 |
130 | fbUA_NodeGetHandleList(
131 | Execute := TRUE,
132 | ConnectionHdl := nConnectionHdl,
133 | NodeIDCount := nNodeIdx,
134 | NodeIDs := NodeIDs,
135 | NodeHdls => nNodeHdls
136 | );
137 |
138 | IF NOT fbUA_NodeGetHandleList.Busy THEN
139 | fbUA_NodeGetHandleList(Execute := FALSE);
140 |
141 | IF NOT fbUA_NodeGetHandleList.Error THEN
142 | (* session closed *)
143 | iState := iState + 1; (* idle *)
144 | ELSE
145 | bError := TRUE;
146 | nErrorID := fbUA_NodeGetHandleList.ErrorID;
147 | iState := 6; (* idle *)
148 | END_IF
149 | END_IF
150 |
151 |
152 | 4: (* UA_Read *)
153 | cbData[1] := SIZEOF(stReadListDataArrayInt.iArrayIntVar1);
154 | cbData[2] := SIZEOF(stReadListDataArrayInt.iArrayIntVar2);
155 |
156 | cbDataTotal := SIZEOF(stReadListDataArrayInt);
157 | fbUA_ReadList(
158 | Execute := TRUE,
159 | ConnectionHdl := nConnectionHdl,
160 | NodeHdlCount := nNodeIdx, // 2
161 | NodeHdls := nNodeHdls,
162 | stNodeAddInfo := stNodeAddInfo,
163 | pVariable := ADR(stReadListDataArrayInt),
164 | cbData := cbData ,
165 | cbDataTotal := cbDataTotal
166 | );
167 |
168 | IF NOT fbUA_ReadList.Busy THEN
169 | fbUA_ReadList( Execute := FALSE, cbData_R => cbData_R);
170 |
171 | IF NOT fbUA_ReadList.Error THEN
172 | (* session closed *)
173 | iState := iState + 1; (* idle *)
174 | ELSE
175 | bError := TRUE;
176 | nErrorID := fbUA_ReadList.ErrorID;
177 | iState := 6; (* idle *)
178 | END_IF
179 | END_IF
180 |
181 |
182 | 5: (* Release Node Handle *)
183 | fbUA_NodeReleaseHandleList(
184 | Execute := TRUE,
185 | ConnectionHdl := nConnectionHdl,
186 | NodeHdlCount := nNodeIdx,
187 | NodeHdls := nNodeHdls
188 | );
189 |
190 | IF NOT fbUA_NodeReleaseHandleList.Busy THEN
191 | fbUA_NodeReleaseHandleList(Execute := FALSE);
192 |
193 | IF NOT fbUA_NodeReleaseHandleList.Error THEN
194 | (* session closed *)
195 | iState := iState + 1; (* idle *)
196 | ELSE
197 | bError := TRUE;
198 | nErrorID := fbUA_NodeReleaseHandleList.ErrorID;
199 | iState := 6; (* idle *)
200 | END_IF
201 | END_IF
202 |
203 |
204 | 6: (* close session *)
205 | fbUA_Disconnect(
206 | Execute := TRUE,
207 | ConnectionHdl := nConnectionHdl
208 | );
209 |
210 | IF NOT fbUA_Disconnect.Busy THEN
211 | fbUA_Disconnect(Execute := FALSE);
212 | bBusy := FALSE;
213 | IF NOT fbUA_Disconnect.Error THEN
214 | (* session closed *)
215 | iState := 0; (* idle *)
216 | IF NOT bError THEN
217 | bDone := TRUE;
218 | END_IF
219 | ELSE
220 | bError := TRUE;
221 | nErrorID := fbUA_Disconnect.ErrorID;
222 | iState := 0; (* idle *)
223 | nConnectionHdl := 0;
224 | END_IF
225 | END_IF
226 | END_CASE
227 | ]]>
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Write/PRG_WRITE.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
42 |
43 | nConnectionHdl
84 | );
85 |
86 | IF NOT fbUA_Connect.Busy THEN
87 | fbUA_Connect(Execute := FALSE);
88 |
89 | IF NOT fbUA_Connect.Error THEN
90 | (* session open *)
91 | iState := iState + 1;
92 | ELSE
93 | bError := TRUE;
94 | nErrorID := fbUA_Connect.ErrorID;
95 | nConnectionHdl := 0;
96 | iState := 0; (* idle *)
97 | END_IF
98 | END_IF
99 |
100 |
101 | 2: (* GetNS Index *)
102 | fbUA_GetNamespaceIndex(
103 | Execute := TRUE,
104 | ConnectionHdl := nConnectionHdl,
105 | NamespaceUri := sNamespaceUri,
106 | NamespaceIndex => nNamespaceIndex
107 | );
108 |
109 | IF NOT fbUA_GetNamespaceIndex.Busy THEN
110 | fbUA_GetNamespaceIndex(Execute := FALSE);
111 |
112 | IF NOT fbUA_GetNamespaceIndex.Error THEN
113 | iState := iState + 1;
114 | ELSE
115 | bError := TRUE;
116 | nErrorID := fbUA_GetNamespaceIndex.ErrorID;
117 | iState := 6; (* idle *)
118 | END_IF
119 | END_IF
120 |
121 |
122 | 3: (* Get Node Handle *)
123 | NodeID.eIdentifierType := eUAIdentifierType_String;
124 | NodeID.nNamespaceIndex := nNamespaceIndex;
125 | NodeID.sIdentifier := sNodeIdentifier;
126 | fbUA_NodeGetHandle(
127 | Execute := TRUE,
128 | ConnectionHdl := nConnectionHdl,
129 | NodeID := NodeID,
130 | NodeHdl => nNodeHdl
131 | );
132 |
133 | IF NOT fbUA_NodeGetHandle.Busy THEN
134 | fbUA_NodeGetHandle(Execute := FALSE);
135 |
136 | IF NOT fbUA_NodeGetHandle.Error THEN
137 | iState := iState + 1;
138 | ELSE
139 | bError := TRUE;
140 | nErrorID := fbUA_NodeGetHandle.ErrorID;
141 | iState := 6; (* idle *)
142 | END_IF
143 | END_IF
144 |
145 |
146 | 4: (* UA_Write *)
147 | fbUA_Write(
148 | Execute := TRUE,
149 | ConnectionHdl := nConnectionHdl,
150 | NodeHdl := nNodeHdl,
151 | stNodeAddInfo := stNodeAddInfo,
152 | cbData := SIZEOF(nWriteData),
153 | pVariable := ADR(nWriteData)
154 | );
155 |
156 | IF NOT fbUA_Write.Busy THEN
157 | fbUA_Write(
158 | Execute := FALSE,
159 | pVariable := ADR(nWriteData));
160 |
161 | IF NOT fbUA_Write.Error THEN
162 | iState := iState + 1;
163 | ELSE
164 | bError := TRUE;
165 | nErrorID := fbUA_Write.ErrorID;
166 | iState := 6; (* idle *)
167 | END_IF
168 | END_IF
169 |
170 |
171 | 5: (* Release Node Handle *)
172 | fbUA_NodeReleaseHandle(
173 | Execute := TRUE,
174 | ConnectionHdl := nConnectionHdl,
175 | NodeHdl := nNodeHdl
176 | );
177 |
178 | IF NOT fbUA_NodeReleaseHandle.Busy THEN
179 | fbUA_NodeReleaseHandle(Execute := FALSE);
180 |
181 | IF NOT fbUA_NodeReleaseHandle.Error THEN
182 | iState := iState + 1;
183 | ELSE
184 | bError := TRUE;
185 | nErrorID := fbUA_NodeReleaseHandle.ErrorID;
186 | iState := 6; (* idle *)
187 | END_IF
188 | END_IF
189 |
190 |
191 | 6: (* close session *)
192 | fbUA_Disconnect(
193 | Execute := TRUE,
194 | ConnectionHdl := nConnectionHdl
195 | );
196 |
197 | IF NOT fbUA_Disconnect.Busy THEN
198 | fbUA_Disconnect(Execute := FALSE);
199 | bBusy := FALSE;
200 | IF NOT fbUA_Disconnect.Error THEN
201 | (* session closed *)
202 | iState := 0;
203 | IF NOT bError THEN
204 | bDone := TRUE;
205 | END_IF
206 | ELSE
207 | bError := TRUE;
208 | nErrorID := fbUA_Disconnect.ErrorID;
209 | iState := 0; (* idle *)
210 | nConnectionHdl := 0;
211 | END_IF
212 | END_IF
213 | END_CASE
214 | ]]>
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/POUs/Write/PRG_WRITE_IndexRange.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
42 |
43 | nConnectionHdl
92 | );
93 |
94 | IF NOT fbUA_Connect.Busy THEN
95 | fbUA_Connect(Execute := FALSE);
96 |
97 | IF NOT fbUA_Connect.Error THEN
98 | (* session open *)
99 | iState := iState + 1;
100 | ELSE
101 | bError := TRUE;
102 | nErrorID := fbUA_Connect.ErrorID;
103 | nConnectionHdl := 0;
104 | iState := 0; (* idle *)
105 | END_IF
106 | END_IF
107 |
108 |
109 | 2: (* GetNS Index *)
110 | fbUA_GetNamespaceIndex(
111 | Execute := TRUE,
112 | ConnectionHdl := nConnectionHdl,
113 | NamespaceUri := sNamespaceUri,
114 | NamespaceIndex => nNamespaceIndex
115 | );
116 |
117 | IF NOT fbUA_GetNamespaceIndex.Busy THEN
118 | fbUA_GetNamespaceIndex(Execute := FALSE);
119 |
120 | IF NOT fbUA_GetNamespaceIndex.Error THEN
121 | iState := iState + 1;
122 | ELSE
123 | bError := TRUE;
124 | nErrorID := fbUA_GetNamespaceIndex.ErrorID;
125 | iState := 6; (* idle *)
126 | END_IF
127 | END_IF
128 |
129 |
130 | 3: (* Get Node Handle *)
131 | NodeID.eIdentifierType := eUAIdentifierType_String;
132 | NodeID.nNamespaceIndex := nNamespaceIndex;
133 | NodeID.sIdentifier := sNodeIdentifier;
134 | fbUA_NodeGetHandle(
135 | Execute := TRUE,
136 | ConnectionHdl := nConnectionHdl,
137 | NodeID := NodeID,
138 | NodeHdl => nNodeHdl
139 | );
140 |
141 | IF NOT fbUA_NodeGetHandle.Busy THEN
142 | fbUA_NodeGetHandle(Execute := FALSE);
143 |
144 | IF NOT fbUA_NodeGetHandle.Error THEN
145 | iState := iState + 1;
146 | ELSE
147 | bError := TRUE;
148 | nErrorID := fbUA_NodeGetHandle.ErrorID;
149 | iState := 6; (* idle *)
150 | END_IF
151 | END_IF
152 |
153 |
154 | 4: (* UA_Write *)
155 | fbUA_Write(
156 | Execute := TRUE,
157 | ConnectionHdl := nConnectionHdl,
158 | NodeHdl := nNodeHdl,
159 | stNodeAddInfo := stNodeAddInfo,
160 | cbData := SIZEOF(nWriteData),
161 | pVariable := ADR(nWriteData)
162 | );
163 |
164 | IF NOT fbUA_Write.Busy THEN
165 | fbUA_Write(
166 | Execute := FALSE,
167 | pVariable := ADR(nWriteData));
168 |
169 | IF NOT fbUA_Write.Error THEN
170 | iState := iState + 1;
171 | ELSE
172 | bError := TRUE;
173 | nErrorID := fbUA_Write.ErrorID;
174 | iState := 6; (* idle *)
175 | END_IF
176 | END_IF
177 |
178 |
179 | 5: (* Release Node Handle *)
180 | fbUA_NodeReleaseHandle(
181 | Execute := TRUE,
182 | ConnectionHdl := nConnectionHdl,
183 | NodeHdl := nNodeHdl
184 | );
185 |
186 | IF NOT fbUA_NodeReleaseHandle.Busy THEN
187 | fbUA_NodeReleaseHandle(Execute := FALSE);
188 |
189 | IF NOT fbUA_NodeReleaseHandle.Error THEN
190 | iState := iState + 1;
191 | ELSE
192 | bError := TRUE;
193 | nErrorID := fbUA_NodeReleaseHandle.ErrorID;
194 | iState := 6; (* idle *)
195 | END_IF
196 | END_IF
197 |
198 |
199 | 6: (* close session *)
200 | fbUA_Disconnect(
201 | Execute := TRUE,
202 | ConnectionHdl := nConnectionHdl
203 | );
204 |
205 | IF NOT fbUA_Disconnect.Busy THEN
206 | fbUA_Disconnect(Execute := FALSE);
207 | bBusy := FALSE;
208 | IF NOT fbUA_Disconnect.Error THEN
209 | (* session closed *)
210 | iState := 0;
211 | IF NOT bError THEN
212 | bDone := TRUE;
213 | END_IF
214 | ELSE
215 | bError := TRUE;
216 | nErrorID := fbUA_Disconnect.ErrorID;
217 | iState := 0; (* idle *)
218 | nConnectionHdl := 0;
219 | END_IF
220 | END_IF
221 | END_CASE
222 | ]]>
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ClientSampleProject/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {65922f9b-9ebf-4faa-813d-ad536aab0757}
11 | {451785f3-ee62-439a-aae3-fc78595df332}
12 | {9ff0ba94-9466-4d8f-a250-79acc19db2eb}
13 | {fcb897a7-6a0e-465a-991a-866035b78a6e}
14 | {fbb866aa-53cb-4c6f-a0d5-8430e9f48ade}
15 |
16 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ServerSampleProject/DUTs/ST_Structure.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ServerSampleProject/DUTs/ST_SubStructure.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ServerSampleProject/POUs/FB_Mathematics.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
19 |
20 |
21 |
28 |
29 |
31 |
32 |
33 |
34 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ServerSampleProject/POUs/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ServerSampleProject/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 10000
6 | 20
7 |
8 | MAIN
9 |
10 | {d3d24537-8785-4406-a625-dccb4b6b9df4}
11 | {a084ea87-8069-479f-b31e-384c204c9587}
12 | {146dca04-dd08-4037-96a9-ecb9945085fd}
13 | {efb79ed6-f8cd-46e2-9d24-c5bfe17d8722}
14 | {56b7217e-3662-4d73-8545-a32fd2bd9846}
15 |
16 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/ServerSampleProject/ServerSampleProject.plcproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.0.0.0
5 | 2.0
6 | {70c1ee89-a65d-417c-90f4-4bebdc9b1346}
7 | ServerSampleProject
8 | 3.1.4026.13
9 | {38756cf6-3856-4f6d-a1bf-115d44d32659}
10 | {3e289b21-4e1f-4ed1-af64-669ce9e3eb36}
11 | {ecafdd6b-ba1d-4875-ad0a-d367121c6193}
12 | {b0295345-94c9-4b6c-9fdb-6a142e2f43b2}
13 | {f2f8871f-9f55-406a-8a5f-1c86d06681ce}
14 | {97ffc275-7c57-4a72-95fc-86dd800b3237}
15 | SAK
16 | SAK
17 | SAK
18 | SAK
19 |
20 |
21 |
22 | Code
23 |
24 |
25 | Code
26 |
27 |
28 | Code
29 |
30 |
31 | Code
32 |
33 |
34 | Code
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | Tc2_Standard, * (Beckhoff Automation GmbH)
46 | Tc2_Standard
47 |
48 |
49 | Tc2_System, * (Beckhoff Automation GmbH)
50 | Tc2_System
51 |
52 |
53 | Tc3_Module, * (Beckhoff Automation GmbH)
54 | Tc3_Module
55 |
56 |
57 |
58 |
59 | Content
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | "<ProjectRoot>"
68 |
69 | {A3BBA713-63D7-4de6-BEC2-E3BAAD8789F8}
70 |
71 | "{A3BBA713-63D7-4de6-BEC2-E3BAAD8789F8}"
72 |
73 |
74 |
75 | {192FAD59-8248-4824-A8DE-9177C94C195A}
76 |
77 | "{192FAD59-8248-4824-A8DE-9177C94C195A}"
78 |
79 |
80 |
81 | {C70B7845-2722-4a9b-A0EA-88C877A4B36F}
82 |
83 | "{C70B7845-2722-4a9b-A0EA-88C877A4B36F}"
84 |
85 |
86 | MaxAuthenticationTrials
87 | 3
88 | UserList
89 |
90 |
91 |
92 | {ad54a456-57f5-4ac0-a68d-dda8a5589c57}
93 | "Owner"
94 | ""
95 | ""
96 | true
97 |
98 |
99 |
100 | MaxTimeOfInactivity
101 | 10
102 | EnableMaxTimeOfInactivity
103 | true
104 | GroupList
105 |
106 |
107 |
108 | {face85f7-ec42-43f4-8a41-0f1266b346c1}
109 | "Everyone"
110 | ""
111 | true
112 | false
113 |
114 | ad54a456-57f5-4ac0-a68d-dda8a5589c57
115 |
116 |
117 |
118 |
119 | {521bd50f-e454-4900-92a1-c73782b8db97}
120 | "Owner"
121 | ""
122 | false
123 | true
124 |
125 | ad54a456-57f5-4ac0-a68d-dda8a5589c57
126 |
127 |
128 |
129 |
130 |
131 | UserAuthentication
132 |
133 |
134 | ad54a456-57f5-4ac0-a68d-dda8a5589c57
135 | d41d8cd98f00b204e9800998ecf8427e
136 |
137 |
138 | EnableMaxAuthenticationTrials
139 | true
140 |
141 |
142 | {40450F57-0AA3-4216-96F3-5444ECB29763}
143 |
144 | "{40450F57-0AA3-4216-96F3-5444ECB29763}"
145 |
146 |
147 | ActiveVisuExtensionsLength
148 | 0
149 | ActiveVisuProfile
150 | "IR0whWr8bwf8BwAA6S073gAAAACmAgAA3S1CUAAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABCxUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMQA4AAUWUAByAG8AZgBpAGwAZQBEAGEAdABhAAZMewAxADYAZQA1ADUAYgA2ADAALQA3ADAANAAzAC0ANABhADYAMwAtAGIANgA1AGIALQA2ADEANAA3ADEAMwA4ADcAOABkADQAMgB9AAcSTABpAGIAcgBhAHIAaQBlAHMACEx7ADMAYgBmAGQANQA0ADUAOQAtAGIAMAA3AGYALQA0AGQANgBlAC0AYQBlADEAYQAtAGEAOAAzADMANQA2AGEANQA1ADEANAAyAH0ACUx7ADkAYwA5ADUAOAA5ADYAOAAtADIAYwA4ADUALQA0ADEAYgBiAC0AOAA4ADcAMQAtADgAOQA1AGYAZgAxAGYAZQBkAGUAMQBhAH0ACg5WAGUAcgBzAGkAbwBuAAsGaQBuAHQADApVAHMAYQBnAGUADQpUAGkAdABsAGUADhxWAGkAcwB1AEUAbABlAG0AMwBEAFAAYQB0AGgADw5DAG8AbQBwAGEAbgB5ABAMUwB5AHMAdABlAG0AERpWAGkAcwB1AEUAbABlAG0ATQBlAHQAZQByABISVgBpAHMAdQBFAGwAZQBtAHMAEyJWAGkAcwB1AEUAbABlAG0AcwBEAGEAdABlAFQAaQBtAGUAFDBWAGkAcwB1AEUAbABlAG0AcwBTAHAAZQBjAGkAYQBsAEMAbwBuAHQAcgBvAGwAcwAVKFYAaQBzAHUARQBsAGUAbQBzAFcAaQBuAEMAbwBuAHQAcgBvAGwAcwAWJFYAaQBzAHUARQBsAGUAbQBUAGUAeAB0AEUAZABpAHQAbwByABciVgBpAHMAdQBOAGEAdABpAHYAZQBDAG8AbgB0AHIAbwBsABgUdgBpAHMAdQBpAG4AcAB1AHQAcwAZDHMAeQBzAHQAZQBtABoYVgBpAHMAdQBFAGwAZQBtAEIAYQBzAGUAGyZEAGUAdgBQAGwAYQBjAGUAaABvAGwAZABlAHIAcwBVAHMAZQBkABwIYgBvAG8AbAAdIlAAbAB1AGcAaQBuAEMAbwBuAHMAdAByAGEAaQBuAHQAcwAeTHsANAAzAGQANQAyAGIAYwBlAC0AOQA0ADIAYwAtADQANABkADcALQA5AGUAOQA0AC0AMQBiAGYAZABmADMAMQAwAGUANgAzAGMAfQAfHEEAdABMAGUAYQBzAHQAVgBlAHIAcwBpAG8AbgAgFFAAbAB1AGcAaQBuAEcAdQBpAGQAIRZTAHkAcwB0AGUAbQAuAEcAdQBpAGQAIkhhAGYAYwBkADUANAA0ADYALQA0ADkAMQA0AC0ANABmAGUANwAtAGIAYgA3ADgALQA5AGIAZgBmAGUAYgA3ADAAZgBkADEANwAjFFUAcABkAGEAdABlAEkAbgBmAG8AJEx7AGIAMAAzADMANgA2AGEAOAAtAGIANQBjADAALQA0AGIAOQBhAC0AYQAwADAAZQAtAGUAYgA4ADYAMAAxADEAMQAwADQAYwAzAH0AJQ5VAHAAZABhAHQAZQBzACZMewAxADgANgA4AGYAZgBjADkALQBlADQAZgBjAC0ANAA1ADMAMgAtAGEAYwAwADYALQAxAGUAMwA5AGIAYgA1ADUANwBiADYAOQB9ACdMewBhADUAYgBkADQAOABjADMALQAwAGQAMQA3AC0ANAAxAGIANQAtAGIAMQA2ADQALQA1AGYAYwA2AGEAZAAyAGIAOQA2AGIANwB9ACgWTwBiAGoAZQBjAHQAcwBUAHkAcABlAClUVQBwAGQAYQB0AGUATABhAG4AZwB1AGEAZwBlAE0AbwBkAGUAbABGAG8AcgBDAG8AbgB2AGUAcgB0AGkAYgBsAGUATABpAGIAcgBhAHIAaQBlAHMAKhBMAGkAYgBUAGkAdABsAGUAKxRMAGkAYgBDAG8AbQBwAGEAbgB5ACweVQBwAGQAYQB0AGUAUAByAG8AdgBpAGQAZQByAHMALThTAHkAcwB0AGUAbQAuAEMAbwBsAGwAZQBjAHQAaQBvAG4AcwAuAEgAYQBzAGgAdABhAGIAbABlAC4SdgBpAHMAdQBlAGwAZQBtAHMAL0g2AGMAYgAxAGMAZABlADEALQBkADUAZABjAC0ANABhADMAYgAtADkAMAA1ADQALQAyADEAZgBhADcANQA2AGEAMwBmAGEANAAwKEkAbgB0AGUAcgBmAGEAYwBlAFYAZQByAHMAaQBvAG4ASQBuAGYAbwAxTHsAYwA2ADEAMQBlADQAMAAwAC0ANwBmAGIAOQAtADQAYwAzADUALQBiADkAYQBjAC0ANABlADMAMQA0AGIANQA5ADkANgA0ADMAfQAyGE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuADMYTQBpAG4AbwByAFYAZQByAHMAaQBvAG4ANAxMAGUAZwBhAGMAeQA1MEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwAVgBlAHIAcwBpAG8AbgBJAG4AZgBvADYaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgbQBwgaAUUHCQrQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAGAAAAAAAAANAMC60CAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAABgAAAAoAAADQDAutAQAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAAGAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAABgAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAAGAAAAAAAAANAMC60CAAAA0A0BLRfQDwEtENAACRoERQoLBAMAAAAFAAAABgAAAAAAAADQDAutAgAAANANAS0Y0A8BLRnQAAkaBEUKCwQDAAAABQAAAAYAAAAAAAAA0AwLrQQAAADQDQEtGtAPAS0Q0BscrQFFHR4B0AAeGgJFHwsEAwAAAAUAAAAGAAAAAAAAANAgIS0i0CMkGgJFJSYC0AAnGgVFCgsEAwAAAAMAAAAAAAAACgAAANAoC60AAAAA0AMBLSnQKgEtEtArAS0Q0AAnGgVFCgsEAwAAAAMAAAAAAAAACgAAANAoC60BAAAA0AMBLSnQKgEtEtArAS0QmiwtAUUAAQLQAAEtLtAAAS0Z0AAhLS/QMDEaA9AyC60BAAAA0DMLrRAAAADQNBytANA1MRoD0DILrQIAAADQMwutAgAAANA0HK0A0DYcrQA="
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 | System.Collections.ArrayList
159 | System.Boolean
160 | {daecd4be-1e2b-4335-a125-4a1ac83ea49f}
161 | {bf4dffda-f055-446d-9d7a-5f126720896b}
162 | System.Guid
163 | System.Collections.Hashtable
164 | System.Int32
165 | {54dd0eac-a6d8-46f2-8c27-2f43c7e49861}
166 | System.String
167 | {cd83029e-13b0-491e-9e4b-921adda0d86b}
168 | {3635a671-97f5-41bb-9e29-0ebb9795975c}
169 | {9fe6b547-6bc8-4f11-b589-b517860c5891}
170 |
171 |
172 |
173 |
174 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/TF6100_OpcUa_Client_Sample.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # TcXaeShell Solution File, Format Version 11.00
4 | VisualStudioVersion = 15.0.28010.2050
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "TF6100_OpcUa_Client_Sample", "TF6100_OpcUa_Client_Sample.tsproj", "{0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{46B00520-F9FF-4BBC-AC86-1E1EC6E78DBB}"
9 | ProjectSection(SolutionItems) = preProject
10 | TcUaHaConfig.xml = TcUaHaConfig.xml
11 | EndProjectSection
12 | EndProject
13 | Global
14 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
15 | Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7)
16 | Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2)
17 | Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64)
18 | Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86)
19 | Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7)
20 | Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2)
21 | Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64)
22 | Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86)
23 | EndGlobalSection
24 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
25 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
26 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
27 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
28 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
29 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
30 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
31 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
32 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
33 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
34 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
35 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
36 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
37 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
38 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
39 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
40 | {0C02E2A8-3609-498F-8F84-57ADBF2A2CC6}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
41 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
42 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
43 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
44 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
45 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
46 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
47 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
48 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
49 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
50 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
51 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
52 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
53 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
54 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
55 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
56 | {70C1EE89-A65D-417C-90F4-4BEBDC9B1346}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
57 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
58 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
59 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
60 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
61 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
62 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
63 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
64 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
65 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
66 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
67 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
68 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
69 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
70 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
71 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
72 | {525B8F9C-92F8-4802-832B-9F33CD7B9ED0}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
73 | EndGlobalSection
74 | GlobalSection(SolutionProperties) = preSolution
75 | HideSolutionNode = FALSE
76 | EndGlobalSection
77 | GlobalSection(ExtensibilityGlobals) = postSolution
78 | SolutionGuid = {81ECFD3B-8239-4C7C-A46D-37F360367024}
79 | EndGlobalSection
80 | EndGlobal
81 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Client_Sample/TcUaHaConfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Enums/E_Enum_1.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Enums/E_Enum_2.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Enums/E_Operation.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_1.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_2.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_3.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_4.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_5.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_6.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_7.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_Complex_8.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_MathOperation.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/DUTs/Structures/ST_MathematicResults.TcDUT:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_alarm_condition.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 60. Increments every second'}
7 | limitAlmTrigger: DINT;
8 | limitAlmRangeLo :DINT := 0;
9 | limitAlmRangeHi :DINT := 100;
10 |
11 | {attribute 'OPC.UA.DA' := '1'}
12 | {attribute 'OPC.UA.DA.Description' := 'Triggers a off normal alarm when set to true. Changes state every 30 secs'}
13 | offNormAlmTrigger : BOOL;
14 |
15 | {attribute 'OPC.UA.DA' := '1'}
16 | {attribute 'OPC.UA.DA.Description' := 'Triggers a limit alarm when value is < 30 or > 60. Can be incremented by the client to trigger an alarm'}
17 | manualLimitAlmTrigger: DINT := 45;
18 |
19 | {attribute 'OPC.UA.DA' := '1'}
20 | {attribute 'OPC.UA.DA.Description' := 'Triggers a off normal alarm when set to true. Can be toggeled by the client to trigger an alarm'}
21 | manualOffNormAlmTrigger : BOOL;
22 | END_VAR]]>
23 |
24 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_analog_items.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
149 |
150 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_arrays.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_enums.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
13 |
14 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_historizing.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
89 |
90 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_inheritance.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_methods.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
17 |
18 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_properties.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_structures.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
51 |
52 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/GVL_user_access.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
28 |
29 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/GVLs/Settings.TcGVL:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
16 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Inheritance/FB_Base.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Inheritance/FB_Derived.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/MAIN.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Methods/FB_Job.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
27 |
28 |
46 |
47 |
48 |
53 |
54 |
55 |
56 |
57 |
58 |
73 |
74 |
87 |
88 |
89 |
90 |
102 |
103 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Methods/FB_Mathematics.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
21 |
22 |
25 |
26 |
27 |
28 |
37 |
38 |
50 |
51 |
52 |
53 |
60 |
61 |
72 |
73 |
74 |
75 |
84 |
85 |
96 |
97 |
98 |
99 |
111 |
112 |
116 |
117 |
118 |
119 |
126 |
127 |
132 |
133 |
134 |
135 |
142 |
143 |
146 |
147 |
148 |
149 |
156 |
157 |
159 |
160 |
161 |
162 |
169 |
170 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Methods/FB_Methods.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
21 |
22 |
26 |
27 |
28 |
29 |
35 |
36 |
37 |
38 |
39 |
40 |
44 |
45 |
48 |
49 |
50 |
51 |
57 |
58 |
61 |
62 |
63 |
64 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Programs/PRG_Eventlogger.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
18 |
19 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Programs/PRG_Static.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/POUs/Properties/FB_Properties.TcPOU:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
13 |
14 |
15 |
16 |
19 |
20 |
23 |
24 |
25 |
26 |
27 |
28 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/ServerSampleProject/PlcTask.TcTTO:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 10000
5 | 20
6 |
7 | MAIN
8 |
9 | {986d1ef3-bbb5-4bbe-8963-40f7eb07fae7}
10 | {63b8af3f-12b9-4db4-bdca-57dca6b77b71}
11 | {f131b689-19b2-4fba-a827-10b8211ca2af}
12 | {65bb8b0d-cb2c-41d2-9236-94df2f8c9f76}
13 | {132be673-d3b3-4b04-8834-0ec2e5e25b80}
14 |
15 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/TF6100_OpcUa_Server_Sample.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # TcXaeShell Solution File, Format Version 11.00
4 | VisualStudioVersion = 17.7.34302.85
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "TF6100_OpcUa_Server_Sample", "TF6100_OpcUa_Server_Sample.tsproj", "{46F57825-3085-4014-A591-E4DD7F71DEE3}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|TwinCAT CE7 (ARMV7) = Debug|TwinCAT CE7 (ARMV7)
11 | Debug|TwinCAT OS (ARMT2) = Debug|TwinCAT OS (ARMT2)
12 | Debug|TwinCAT OS (x64) = Debug|TwinCAT OS (x64)
13 | Debug|TwinCAT RT (x64) = Debug|TwinCAT RT (x64)
14 | Debug|TwinCAT RT (x86) = Debug|TwinCAT RT (x86)
15 | Release|TwinCAT CE7 (ARMV7) = Release|TwinCAT CE7 (ARMV7)
16 | Release|TwinCAT OS (ARMT2) = Release|TwinCAT OS (ARMT2)
17 | Release|TwinCAT OS (x64) = Release|TwinCAT OS (x64)
18 | Release|TwinCAT RT (x64) = Release|TwinCAT RT (x64)
19 | Release|TwinCAT RT (x86) = Release|TwinCAT RT (x86)
20 | EndGlobalSection
21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
23 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
24 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
25 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
26 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
27 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
28 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
29 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
30 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
31 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
32 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
33 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
34 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
35 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
36 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
37 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
38 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
39 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
40 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
41 | {46F57825-3085-4014-A591-E4DD7F71DEE3}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
42 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT CE7 (ARMV7).ActiveCfg = Debug|TwinCAT CE7 (ARMV7)
43 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT CE7 (ARMV7).Build.0 = Debug|TwinCAT CE7 (ARMV7)
44 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT OS (ARMT2).ActiveCfg = Debug|TwinCAT OS (ARMT2)
45 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT OS (ARMT2).Build.0 = Debug|TwinCAT OS (ARMT2)
46 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT OS (x64).ActiveCfg = Debug|TwinCAT OS (x64)
47 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT OS (x64).Build.0 = Debug|TwinCAT OS (x64)
48 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT RT (x64).ActiveCfg = Debug|TwinCAT RT (x64)
49 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT RT (x64).Build.0 = Debug|TwinCAT RT (x64)
50 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT RT (x86).ActiveCfg = Debug|TwinCAT RT (x86)
51 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Debug|TwinCAT RT (x86).Build.0 = Debug|TwinCAT RT (x86)
52 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT CE7 (ARMV7).ActiveCfg = Release|TwinCAT CE7 (ARMV7)
53 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT CE7 (ARMV7).Build.0 = Release|TwinCAT CE7 (ARMV7)
54 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT OS (ARMT2).ActiveCfg = Release|TwinCAT OS (ARMT2)
55 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT OS (ARMT2).Build.0 = Release|TwinCAT OS (ARMT2)
56 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT OS (x64).ActiveCfg = Release|TwinCAT OS (x64)
57 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT OS (x64).Build.0 = Release|TwinCAT OS (x64)
58 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT RT (x64).ActiveCfg = Release|TwinCAT RT (x64)
59 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT RT (x64).Build.0 = Release|TwinCAT RT (x64)
60 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT RT (x86).ActiveCfg = Release|TwinCAT RT (x86)
61 | {B51F9A5D-57DC-4E81-917D-52466A79C949}.Release|TwinCAT RT (x86).Build.0 = Release|TwinCAT RT (x86)
62 | EndGlobalSection
63 | GlobalSection(SolutionProperties) = preSolution
64 | HideSolutionNode = FALSE
65 | EndGlobalSection
66 | GlobalSection(ExtensibilityGlobals) = postSolution
67 | SolutionGuid = {ABF250BA-D64E-4C80-BA4F-E792BBAEE6C3}
68 | EndGlobalSection
69 | EndGlobal
70 |
--------------------------------------------------------------------------------
/TF6100_OpcUa_Server_Sample/TF6100_OpcUa_Server_Sample.tsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | TutorialClass
6 |
7 |
8 | Event
9 |
10 | Info
11 |
12 |
13 | Alarm
14 |
15 | Error
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | {BDCC0070-42D5-49AE-ABF1-1D4434813D60}
27 |
28 |
29 |
30 |
31 | PlcTask
32 |
33 |
34 |
35 |
36 |
37 |
38 | ServerSampleProject Instance
39 | {08500001-0000-0000-F000-000000000064}
40 |
41 |
42 | 0
43 | PlcTask
44 |
45 | #x02010030
46 |
47 | 20
48 | 10000000
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/TS6100_OpcUa_Client_Sample/Tc2_PLCopen_OpcUa_Samples.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Beckhoff/TF6100_Samples/a6cdfa3d18dc41c4e6f1145c24bf3a3e439f6ae3/TS6100_OpcUa_Client_Sample/Tc2_PLCopen_OpcUa_Samples.pro
--------------------------------------------------------------------------------
/TS6100_OpcUa_Server_Sample/TS6100_OpcUa_Server_Sample.pro:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Beckhoff/TF6100_Samples/a6cdfa3d18dc41c4e6f1145c24bf3a3e439f6ae3/TS6100_OpcUa_Server_Sample/TS6100_OpcUa_Server_Sample.pro
--------------------------------------------------------------------------------