uGOOSE  1.0
GOOSE for Embedded Devices. Sample project for Renesas R-IN32-EC
Goose Sample Project

This overview comprises the following sections:


Introduction

This is a sample project used to demonstrate the sending and receiving of GOOSE packets using the uGOOSE library on the Renesas R-IN32M3-EC. The sample project was developed specifically for the IAR KickStart Kit for R-IN32M3.

kit_r-in32m3.jpg
IAR KickStart Kit for R-IN32M3

The project will demonstrate the following:

  • Regular scheduled sending of a GOOSE packet
  • Reception and decoding of a GOOSE packet
  • Sending of an modified GOOSE packet in response to the received packet

The sample project has 3 Goose data sets defined.

  • Goose 1 for regular scheduled sending
  • Goose 2 for sending data in response to reception of a Goose 3 packet.
  • Goose 3 for receiving a data

Links

Renesas R-IN32M3-EC

IAR KickStart Kit for R-IN32M3



Scheduled sending

As soon as the project is loaded, it will start sending out regularly scheduled GOOSE packets. These actions can be seen in the Terminal Output window in the debugger.

IarTerminal1.jpg
IAR Terminal Output

The packets sent can be seen in Wireshark:

ws_goose_1.jpg
Wireshark Capture: DatSet 1

The data fields for this dataset can be seen below:

ws_goose_1_data.jpg
DatSet 1 Data fields



Receiving Goose

The sample project has a Goose dataset (Goose 3) set up for receiving data. It expects to receive a single Boolean value (True or False). The last Goose dataset (Goose 2) contains an array of 64 boolean values - all initialised to TRUE. Each packet received should include a sequence number. For the first 64 packets, the code will use the sequence number of the received packet as an index into the array of booleans. It will set the boolean value at this position to the boolean value received as part of the Goose 3 packet.

First Packet (SeQ 0)

Goose 2 0 1 2 3 4 5 6 7 8 9 10 11 12 .. 63
Array of BOOL T F F F F F F F F F F F F F F

Second Packet (SeQ 1)

Goose 2 0 1 2 3 4 5 6 7 8 9 10 11 12 .. 63
Array of BOOL T T F F F F F F F F F F F F F

Third Packet (SeQ 2)

Goose 2 0 1 2 3 4 5 6 7 8 9 10 11 12 .. 63
Array of BOOL T T T F F F F F F F F F F F F

Once the value has been updated, a GOOSE packet (Goose 3) will be sent out with the updated values.


GooseAir

GooseAir (see Tools page) can be set up as follows to send the required Goose Packet:

Data Set Definition

Create a Data Set Definition:

DatSet1.jpg
Data Set Definition
DatSet2.jpg
Data Set Definition

GOOSE Definition

Create a GOOSE Definition:

GooseDef.jpg
GOOSE Definition

GOOSE Simulation

Create a Simulation:

GooseSim.jpg
GOOSE Simulation


The GOOSE packet sent should look like the Wireshark capture below:

GooseAirSend.jpg
GOOSE Packet RX



Send in response to Receive

Once a packet has been sent as described in Receiving Goose, the device will update the data stored in the IED and respond with a new GOOSE packet. This packet will be the Goose data set 2 and will contain the array of 64 boolean values described earlier. Round trip timing can be performed using Wireshark and examining the timestamps in the two packets. The wireshark capture of the response packet should look like the image below:

GooseAirResponse.jpg
GOOSE Packet TX