Campbell Scientific CR6 CR6 Measurement and Control System - Page 411

CRBasic Instructions DNP3, 6.2.2.3 Programming for DNP3 Data Acquisition

Page 411 highlights

Section 8. Operation 8.6.2.2.2 CRBasic Instructions (DNP3) Complete descriptions and options of commands are available in CRBasic Editor Help. DNP() Sets the CR6 as a DNP slave (outstation/server) with an address and DNP3dedicated COM port. Normally resides between BeginProg and Scan(), so it is executed only once. Example at CRBasic example Implementation of DNP3 (p. 412), line 20. Syntax DNP(ComPort, BaudRate, DNPSlaveAddr) DNPVariable() Associates a particular variable array with a DNP object group. When the master polls the CR6, it returns all the variables specified along with their specific groups. Also used to set up event data, which is sent to the master whenever the value in the variable changes. Example at CRBasic example Implementation of DNP3 (p. 412), line 24. Syntax DNPVariable(Source, Swath, DNPObject, DNPVariation, DNPClass, DNPFlag, DNPEvent, DNPNumEvents) DNPUpdate() Determines when DNP slave (outstation/server) will update its arrays of DNP elements. Specifies the address of the DNP master to which are sent unsolicited responses (event data). Must be included once within a Scan() / NextScan for the DNP slave to update its arrays. Typically placed in a program after the elements in the array are updated. The CR6 will respond to any DNP master regardless of its address. Syntax DNPUpdate (DNPSlaveAddr,DNPMasterAddr) 8.6.2.2.3 Programming for DNP3 Data Acquisition As shown in CRBasic example Implementation of DNP3 (p. 412), program the CR6 to return data when polled by the DNP3 master using the following three actions: 1. Place DNP() at the beginning of the program between BeginProg and Scan(). Set COM port, baud rate, and DNP3 address. 2. Setup the variables to be sent to the master using DNPVariable(). Dual instructions cover static (current values) and event (previous ten records) data. o For analog measurements: DNPVariable(Variable_Name,Swath,30,2,0,&B00000000,0,0) DNPVariable(Variable_Name,Swath,32,2,3,&B00000000,0,10) o For digital measurements (control ports): DNPVariable(Variable_Name,Swath,1,2,0,&B00000000,0,0) DNPVariable(Variable_Name,Swath,32,2,3,&B00000000,0,10) 411

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 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
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 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
  • 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
  • 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
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518
  • 519
  • 520
  • 521
  • 522
  • 523
  • 524
  • 525
  • 526
  • 527
  • 528
  • 529
  • 530
  • 531
  • 532
  • 533
  • 534
  • 535
  • 536
  • 537
  • 538
  • 539
  • 540
  • 541
  • 542
  • 543
  • 544
  • 545
  • 546
  • 547
  • 548
  • 549
  • 550
  • 551
  • 552
  • 553
  • 554
  • 555
  • 556
  • 557
  • 558
  • 559
  • 560
  • 561
  • 562
  • 563
  • 564
  • 565
  • 566
  • 567
  • 568
  • 569
  • 570
  • 571
  • 572
  • 573
  • 574
  • 575
  • 576
  • 577
  • 578
  • 579
  • 580
  • 581
  • 582
  • 583
  • 584
  • 585
  • 586
  • 587
  • 588
  • 589
  • 590
  • 591
  • 592
  • 593
  • 594
  • 595
  • 596
  • 597
  • 598
  • 599
  • 600
  • 601
  • 602
  • 603
  • 604
  • 605
  • 606
  • 607
  • 608
  • 609
  • 610
  • 611
  • 612
  • 613
  • 614
  • 615
  • 616
  • 617
  • 618
  • 619
  • 620
  • 621
  • 622
  • 623
  • 624
  • 625
  • 626

Section 8.
Operation
8.6.2.2.2 CRBasic Instructions (DNP3)
Complete descriptions and options of commands are available in
CRBasic Editor
Help
.
DNP()
Sets the CR6 as a DNP slave (outstation/server) with an address and DNP3-
dedicated COM port. Normally resides between
BeginProg
and
Scan()
, so it is
executed only once. Example at CRBasic example
Implementation of DNP3
(p.
412),
line 20.
Syntax
DNP(ComPort, BaudRate, DNPSlaveAddr)
DNPVariable()
Associates a particular variable array with a DNP object group. When the master
polls the CR6, it returns all the variables specified along with their specific
groups. Also used to set up event data, which is sent to the master whenever the
value in the variable changes. Example at CRBasic example
Implementation of
DNP3
(p. 412),
line 24.
Syntax
DNPVariable(Source, Swath, DNPObject, DNPVariation, DNPClass,
DNPFlag, DNPEvent, DNPNumEvents)
DNPUpdate()
Determines when DNP slave (outstation/server) will update its arrays of DNP
elements. Specifies the address of the DNP master to which are sent unsolicited
responses (event data). Must be included once within a
Scan()
/
NextScan
for the
DNP slave to update its arrays. Typically placed in a program after the elements
in the array are updated. The CR6 will respond to any DNP master regardless of
its address.
Syntax
DNPUpdate (DNPSlaveAddr,DNPMasterAddr)
8.6.2.2.3 Programming for DNP3 Data Acquisition
As shown in CRBasic example
Implementation of DNP3
(p. 412),
program the CR6
to return data when polled by the DNP3 master using the following three actions:
1. Place
DNP()
at the beginning of the program between
BeginProg
and
Scan()
.
Set COM port, baud rate, and DNP3 address.
2.
Setup the variables to be sent to the master using
DNPVariable()
. Dual
instructions cover static (current values) and event (previous ten records) data.
o
For analog measurements:
DNPVariable
(
Variable_Name,Swath,30,2,0,&B00000000,0,0)
DNPVariable
(
Variable_Name,Swath,32,2,3,&B00000000,0,10)
o
For digital measurements (control ports):
DNPVariable
(
Variable_Name,Swath,1,2,0,&B00000000,0,0)
DNPVariable
(
Variable_Name,Swath,32,2,3,&B00000000,0,10)
411