(Only for certain terminals with CANopen DS301 V4.0, not for UPT515)
When compared to "older" terminals (like UPT515), "newer" terminals with CANopen-Protokoll "V4" have some differences concerning communication and programming. This document will point out some of these differences, and demonstrate how to use the new features. The feature matrix shows if CANopen V4 is available for your terminal hardware.
Links to other documents about programmable terminals with CANopen :
There are some functional differences between terminals with CANopen V4 and "older" terminals:
On the tool's 'Variables' tab, you will find a column titled 'OD-Index', where the desired CANopen object index and -subindex
can be entered. The object index must match one of the existing objects.
For example, the terminals's own object dictionary contains 10 (or 40) freely usable objects with data type '32-bit integer',
at object index Objekt 0x4004, with subindices ranging from 1 to 10
(or, for devices with the so-called 'Monster-OD', 1 to 40 because there are fourty objects
for each type) zu verbinden.
More details about connecting an interpreter variable (aka 'display variable') with objects 0x4001 to 0x4009 in the terminal's own, local OD can be found here .
See also: CANopen-OD inside the terminal (aka 'local OD'); Display interpreter variables (managed by MKT's programming tool) .
See 'Variables connected via SDO channels' in the common documentation of the programming tool.
(this works for devices with CANopen V3 as well as for devices with CANopen V4, thus no extra chapter in this document)
Terminals with CANopen V4 have a set of variables in their CANopen OD, which are accessable via CAN (SDO or PDO), but also through the terminal's built-in interpreter. Use the function "obd(<index.subindex>)" to access any object in the terminal's local OD. You may, for example, enter the following expression in the "Var/Formula" column of the display definition table to show the first 32-bit-integer variable on the display, without the need to connect it to an interpreter variable :
obd(0x4004.01)
This expression works (almost) like a normal variable, so you may even edit the value on the terminal's display (if it's read- and writeable). Other devices in the network can access it via SDO, just like any other object in the OD, and also via PDO because object 4004(hex) is PDO-mappable.
Instead of typing the "obd"-statement yourself, you can let the programming tool generate it for you. You can select the object which you want to display from a list, which may be easier. Double-click into the "Var/Expr"-column of the display page definition table to open the VARIABLE-Replacement-Dialog (which was once used only to connect display lines and "normal" interpreter variables). This dialog will open:
Select any CANopen object which shall be displayed in the CANopen OD list (on the right side). A click with the left mouse button into the list copies the selected entry into the display line definitions (left side), possibly replacing the old definition. More info about the VARIABLE selection dialog can be found here .
Terminals with CANopen V4 have some new objects in the CANopen Communication Profile (as specified by CiA DS301, object index range 0x1000 0x1BFF). These objects can be used to identify the terminal in a CANopen network. These Identification-objects are constants (read-only) :
CANopen-Index | Contents |
0x1000 | Device Type (not applicable, only DS301 at the moment) |
0x1018 | Identity Object |
0x1018.1 | MKTs vendor ID (0x004D4B54) |
0x1018.2 | Product Code (70055=UPT515, etc) |
0x1018.3 | Revision Number (ex: 0x00010002 = V01.02) |
0x1018.4 | Serial Number (expect this to be ZERO) |
<ToDo>
<ToDo>
See also: Dialog window for PDO mapping
You will need an EDS file to modify the terminal's communication
parameters with a third party's CANopen configuration tool. The following
file have already been unpacked when the terminal programming tool was installed
:
Note: Depending on the hardware setup of a particular device, some of the objects in these files may have no function, but they alway exist in the OD ! If, for example, there is an object named "Front Panel Lamps" (0x5201) though your terminal has no such lamps (LEDs) at all, you can forget this object...
: .