[etherlab-users] EL6688 SDOs

John Hubbard jhubbard at noao.edu
Thu Dec 17 23:42:28 CET 2015


Hello,

I've not gotten my Beckhoff EL1252 and EL2252 modules mostly working 
(I've still got some confusion WRT distributed clocks, and I'm still 
seeing the warnings/errors I mentioned the other day). I'm now working 
on trying to get the EL6688 module (IEEE 1588/Precision Time Protocol) 
up and running.  From my reading of the Beckhoff documentation I'm under 
the impression that most of the setup options (e.g. Ethernet 
configuration and PTPv1 vs PTPv2 mode) need to be setup via SDOs instead 
of PDOs.  (Is this what others would expect?)  For reference I've 
attached the full SDO dictionary that I obtained via 'ethercat sdos'.

I'm a little unclear what the difference between SDOs and PDOs is.  Is 
the difference just the PDOs can be read/written every cycle, while SDOs 
can only be read/written when ecrt_sdo_request_state ==> 
EC_REQUEST_SUCCESS (following an ecrt_sdo_request_write when the state 
is UNUSED)?  Is there a limit to how many SDOs I can request writes per 
cycle?  From the example it looks like writing an SDO is done using the 
same macro as writing a PDO (i.e. EC_WRITE_U32(some_sdo)), is that correct?

 From the mailing list it looks like there was someone that attempted to 
use an EL6688 module back in 2010.  Has anyone used one more recently 
(i.e. with etherlabs 1.5), and if so do they have any code snippets that 
they would be willing/able to share?

Thanks.


-- 
-john

To be or not to be, that is the question
                 2b || !2b
(0b10)*(0b1100010) || !(0b10)*(0b1100010)
         0b11000100 || !0b11000100
         0b11000100 ||  0b00111011
                0b11111111
255, that is the answer.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20151217/b80301bc/attachment-0002.htm>
-------------- next part --------------
SDO 0x1000, "Device type"
  0x1000:00, r-r-r-, uint32, 32 bit, "Device type"
SDO 0x1008, "Device name"
  0x1008:00, r-r-r-, string, 48 bit, "Device name"
SDO 0x1009, "Hardware version"
  0x1009:00, r-r-r-, string, 16 bit, "Hardware version"
SDO 0x100a, "Software version"
  0x100a:00, r-r-r-, string, 16 bit, "Software version"
SDO 0x1010, "Store parameters"
  0x1010:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1010:01, rwr-r-, uint32, 32 bit, "SubIndex 001"
SDO 0x1011, "Restore default parameters"
  0x1011:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1011:01, rwrwrw, uint32, 32 bit, "SubIndex 001"
SDO 0x1018, "Identity"
  0x1018:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1018:01, r-r-r-, uint32, 32 bit, "Vendor ID"
  0x1018:02, r-r-r-, uint32, 32 bit, "Product code"
  0x1018:03, r-r-r-, uint32, 32 bit, "Revision"
  0x1018:04, r-r-r-, uint32, 32 bit, "Serial number"
SDO 0x10f0, "Backup parameter handling"
  0x10f0:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x10f0:01, r-r-r-, uint32, 32 bit, "Checksum"
SDO 0x10f4, "External synchronization status"
  0x10f4:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x10f4:01, r-r-r-, type 0031, 2 bit, "Sync Mode"
  0x10f4:02, r-r-r-, type 0000, 0 bit, "SubIndex 002"
  0x10f4:03, r-r-r-, type 0000, 6 bit, "SubIndex 003"
  0x10f4:04, r-r-r-, type 0000, 0 bit, "SubIndex 004"
  0x10f4:05, r-r-r-, type 0000, 0 bit, "SubIndex 005"
  0x10f4:06, r-r-r-, type 0000, 0 bit, "SubIndex 006"
  0x10f4:07, r-r-r-, type 0000, 0 bit, "SubIndex 007"
  0x10f4:08, r-r-r-, type 0000, 0 bit, "SubIndex 008"
  0x10f4:09, r-r-r-, type 0000, 5 bit, "SubIndex 009"
  0x10f4:0a, r-r-r-, type 0000, 0 bit, "SubIndex 010"
  0x10f4:0b, r-r-r-, type 0000, 0 bit, "SubIndex 011"
  0x10f4:0c, r-r-r-, type 0000, 0 bit, "SubIndex 012"
  0x10f4:0d, r-r-r-, type 0000, 0 bit, "SubIndex 013"
  0x10f4:0e, r-r-r-, bool, 1 bit, "Control value update toggle"
  0x10f4:0f, r-r-r-, bool, 1 bit, "Time stamp update toggle"
  0x10f4:10, r-r-r-, bool, 1 bit, "External device not connected"
  0x10f4:11, r-r-r-, uint64, 64 bit, "Internal time stamp"
  0x10f4:12, r-r-r-, uint64, 64 bit, "External time stamp"
  0x10f4:13, r-r-r-, int32, 32 bit, "Control Value for DC Master Clock"
SDO 0x10f5, "External synchronization settings"
  0x10f5:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x10f5:01, rwrwrw, bool, 1 bit, "Sync master"
  0x10f5:02, rwrwrw, bool, 1 bit, "32 Bit time stamps"
  0x10f5:03, rwrwrw, type 0000, 0 bit, "SubIndex 003"
  0x10f5:04, rwrwrw, type 0000, 0 bit, "SubIndex 004"
  0x10f5:05, rwrwrw, type 0000, 0 bit, "SubIndex 005"
  0x10f5:06, rwrwrw, type 0000, 0 bit, "SubIndex 006"
  0x10f5:07, rwrwrw, type 0000, 0 bit, "SubIndex 007"
  0x10f5:08, rwrwrw, type 0000, 0 bit, "SubIndex 008"
  0x10f5:09, rwrwrw, type 0000, 0 bit, "SubIndex 009"
  0x10f5:0a, rwrwrw, type 0000, 0 bit, "SubIndex 010"
  0x10f5:0b, rwrwrw, type 0000, 0 bit, "SubIndex 011"
  0x10f5:0c, rwrwrw, type 0000, 0 bit, "SubIndex 012"
  0x10f5:0d, rwrwrw, type 0000, 0 bit, "SubIndex 013"
  0x10f5:0e, rwrwrw, type 0000, 0 bit, "SubIndex 014"
  0x10f5:0f, rwrwrw, type 0000, 0 bit, "SubIndex 015"
  0x10f5:10, rwrwrw, type 0000, 0 bit, "SubIndex 016"
  0x10f5:11, rwrwrw, uint16, 16 bit, "Control Interval (ms)"
  0x10f5:12, rwrwrw, uint64, 64 bit, "Additional System Time"
SDO 0x1800, "TxPDO-Par External Sync"
  0x1800:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1800:01, ------, type 0000, 0 bit, "SubIndex 001"
  0x1800:02, ------, type 0000, 0 bit, "SubIndex 002"
  0x1800:03, ------, type 0000, 0 bit, "SubIndex 003"
  0x1800:04, ------, type 0000, 0 bit, "SubIndex 004"
  0x1800:05, ------, type 0000, 0 bit, "SubIndex 005"
  0x1800:06, r-r-r-, octet_string, 32 bit, "Exclude TxPDOs"
  0x1800:07, ------, type 0000, 0 bit, "SubIndex 007"
  0x1800:08, ------, type 0000, 0 bit, "SubIndex 008"
  0x1800:09, ------, type 0000, 0 bit, "SubIndex 009"
SDO 0x1801, "TxPDO-Par External Sync (32 Bit)"
  0x1801:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1801:01, ------, type 0000, 0 bit, "SubIndex 001"
  0x1801:02, ------, type 0000, 0 bit, "SubIndex 002"
  0x1801:03, ------, type 0000, 0 bit, "SubIndex 003"
  0x1801:04, ------, type 0000, 0 bit, "SubIndex 004"
  0x1801:05, ------, type 0000, 0 bit, "SubIndex 005"
  0x1801:06, r-r-r-, octet_string, 32 bit, "Exclude TxPDOs"
  0x1801:07, ------, type 0000, 0 bit, "SubIndex 007"
  0x1801:08, ------, type 0000, 0 bit, "SubIndex 008"
  0x1801:09, ------, type 0000, 0 bit, "SubIndex 009"
SDO 0x1802, "TxPDO-Par External Sync Compact"
  0x1802:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1802:01, ------, type 0000, 0 bit, "SubIndex 001"
  0x1802:02, ------, type 0000, 0 bit, "SubIndex 002"
  0x1802:03, ------, type 0000, 0 bit, "SubIndex 003"
  0x1802:04, ------, type 0000, 0 bit, "SubIndex 004"
  0x1802:05, ------, type 0000, 0 bit, "SubIndex 005"
  0x1802:06, r-r-r-, octet_string, 32 bit, "Exclude TxPDOs"
  0x1802:07, ------, type 0000, 0 bit, "SubIndex 007"
  0x1802:08, ------, type 0000, 0 bit, "SubIndex 008"
  0x1802:09, ------, type 0000, 0 bit, "SubIndex 009"
SDO 0x1a00, "TxPDO-Map External Sync"
  0x1a00:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1a00:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1a00:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
  0x1a00:03, r-r-r-, uint32, 32 bit, "SubIndex 003"
  0x1a00:04, r-r-r-, uint32, 32 bit, "SubIndex 004"
  0x1a00:05, r-r-r-, uint32, 32 bit, "SubIndex 005"
  0x1a00:06, r-r-r-, uint32, 32 bit, "SubIndex 006"
  0x1a00:07, r-r-r-, uint32, 32 bit, "SubIndex 007"
  0x1a00:08, r-r-r-, uint32, 32 bit, "SubIndex 008"
  0x1a00:09, r-r-r-, uint32, 32 bit, "SubIndex 009"
SDO 0x1a01, "TxPDO-Map External Sync (32 Bit)"
  0x1a01:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1a01:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1a01:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
  0x1a01:03, r-r-r-, uint32, 32 bit, "SubIndex 003"
  0x1a01:04, r-r-r-, uint32, 32 bit, "SubIndex 004"
  0x1a01:05, r-r-r-, uint32, 32 bit, "SubIndex 005"
  0x1a01:06, r-r-r-, uint32, 32 bit, "SubIndex 006"
  0x1a01:07, r-r-r-, uint32, 32 bit, "SubIndex 007"
  0x1a01:08, r-r-r-, uint32, 32 bit, "SubIndex 008"
  0x1a01:09, r-r-r-, uint32, 32 bit, "SubIndex 009"
SDO 0x1a02, "TxPDO-Map External Sync Compact"
  0x1a02:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1a02:01, r-r-r-, uint32, 32 bit, "SubIndex 001"
  0x1a02:02, r-r-r-, uint32, 32 bit, "SubIndex 002"
  0x1a02:03, r-r-r-, uint32, 32 bit, "SubIndex 003"
  0x1a02:04, r-r-r-, uint32, 32 bit, "SubIndex 004"
  0x1a02:05, r-r-r-, uint32, 32 bit, "SubIndex 005"
  0x1a02:06, r-r-r-, uint32, 32 bit, "SubIndex 006"
SDO 0x1c00, "Sync manager type"
  0x1c00:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1c00:01, r-r-r-, uint8, 8 bit, "SubIndex 001"
  0x1c00:02, r-r-r-, uint8, 8 bit, "SubIndex 002"
  0x1c00:03, r-r-r-, uint8, 8 bit, "SubIndex 003"
  0x1c00:04, r-r-r-, uint8, 8 bit, "SubIndex 004"
SDO 0x1c12, "RxPDO assign"
  0x1c12:00, rwr-r-, uint8, 8 bit, "SubIndex 000"
SDO 0x1c13, "TxPDO assign"
  0x1c13:00, rwr-r-, uint8, 8 bit, "SubIndex 000"
  0x1c13:01, rwr-r-, uint16, 16 bit, "SubIndex 001"
SDO 0x1c33, "SM input parameter"
  0x1c33:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0x1c33:01, rwrwrw, uint32, 32 bit, "Sync mode"
  0x1c33:02, rwrwrw, uint32, 32 bit, "Cycle time"
  0x1c33:03, r-r-r-, uint32, 32 bit, "Shift time"
  0x1c33:04, r-r-r-, uint16, 16 bit, "Sync modes supported"
  0x1c33:05, r-r-r-, uint32, 32 bit, "Minimum cycle time"
  0x1c33:06, r-r-r-, uint32, 32 bit, "Calc and copy time"
  0x1c33:07, r-r-r-, uint32, 32 bit, "Minimum delay time"
  0x1c33:08, r-r-r-, uint16, 16 bit, "Command"
  0x1c33:09, r-r-r-, uint32, 32 bit, "Maximum delay time"
  0x1c33:0a, r-r-r-, type 0000, 32 bit, "SubIndex 010"
  0x1c33:0b, r-r-r-, uint16, 16 bit, "SM event missed counter"
  0x1c33:0c, r-r-r-, uint16, 16 bit, "Cycle exceeded counter"
  0x1c33:0d, r-r-r-, uint16, 16 bit, "Shift too short counter"
  0x1c33:0e, r-r-r-, type 0000, 16 bit, "SubIndex 014"
  0x1c33:0f, r-r-r-, type 0000, 0 bit, "SubIndex 015"
  0x1c33:10, r-r-r-, type 0000, 0 bit, "SubIndex 016"
  0x1c33:11, r-r-r-, type 0000, 0 bit, "SubIndex 017"
  0x1c33:12, r-r-r-, type 0000, 0 bit, "SubIndex 018"
  0x1c33:13, r-r-r-, type 0000, 0 bit, "SubIndex 019"
  0x1c33:14, r-r-r-, type 0000, 0 bit, "SubIndex 020"
  0x1c33:15, r-r-r-, type 0000, 0 bit, "SubIndex 021"
  0x1c33:16, r-r-r-, type 0000, 0 bit, "SubIndex 022"
  0x1c33:17, r-r-r-, type 0000, 0 bit, "SubIndex 023"
  0x1c33:18, r-r-r-, type 0000, 0 bit, "SubIndex 024"
  0x1c33:19, r-r-r-, type 0000, 0 bit, "SubIndex 025"
  0x1c33:1a, r-r-r-, type 0000, 0 bit, "SubIndex 026"
  0x1c33:1b, r-r-r-, type 0000, 0 bit, "SubIndex 027"
  0x1c33:1c, r-r-r-, type 0000, 0 bit, "SubIndex 028"
  0x1c33:1d, r-r-r-, type 0000, 0 bit, "SubIndex 029"
  0x1c33:1e, r-r-r-, type 0000, 0 bit, "SubIndex 030"
  0x1c33:1f, r-r-r-, type 0000, 0 bit, "SubIndex 031"
  0x1c33:20, r-r-r-, bool, 1 bit, "Sync error"
SDO 0xf000, "Modular device profile"
  0xf000:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf000:01, r-r-r-, uint16, 16 bit, "Module index distance"
  0xf000:02, r-r-r-, uint16, 16 bit, "Maximum number of modules"
SDO 0xf008, "Code word"
  0xf008:00, rwrwrw, uint32, 32 bit, "Code word"
SDO 0xf880, "PTP Common"
  0xf880:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf880:01, rwrwrw, type 080b, 16 bit, "Precision Time Protocol"
SDO 0xf881, "PTPv1 Settings"
  0xf881:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf881:01, rwrwrw, type 0804, 16 bit, "Subdomain Name"
  0xf881:02, rwrwrw, octet_string, 128 bit, "Subdomain Name (user)"
  0xf881:03, rwrwrw, type 0801, 16 bit, "Sync Interval"
  0xf881:04, rwrwrw, type 0802, 16 bit, "Delay Request Interval"
  0xf881:05, rwrwrw, type 0805, 16 bit, "Clock is preferred"
  0xf881:06, rwrwrw, uint16, 16 bit, "Clock Stratum"
  0xf881:07, rwrwrw, type 0806, 16 bit, "Management"
SDO 0xf882, "PTPv2 Settings"
  0xf882:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf882:01, rwrwrw, type 0808, 16 bit, "Transport Layer"
  0xf882:02, rwrwrw, uint16, 16 bit, "Domain Number"
  0xf882:03, rwrwrw, type 0803, 16 bit, "Sync Interval"
  0xf882:04, rwrwrw, type 080c, 16 bit, "Delay Request Interval"
  0xf882:05, rwrwrw, type 0809, 16 bit, "Delay Mechanism"
  0xf882:06, rwrwrw, type 0807, 16 bit, "Announce Interval"
  0xf882:07, rwrwrw, type 080a, 16 bit, "Announce Interval Timeout"
  0xf882:08, rwrwrw, uint16, 16 bit, "Priority1"
  0xf882:09, rwrwrw, uint16, 16 bit, "Priority2"
SDO 0xf8e0, "Ethernet Settings"
  0xf8e0:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf8e0:01, rwrwrw, type 0800, 16 bit, "Address Type"
  0xf8e0:02, rwrwrw, uint32, 32 bit, "IP Address"
  0xf8e0:03, rwrwrw, uint32, 32 bit, "Subnetmask"
  0xf8e0:04, rwrwrw, uint32, 32 bit, "Gateway"
SDO 0xf8f0, "Vendor data"
  0xf8f0:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xf8f0:01, rwrwrw, octet_string, 48 bit, "MAC_Address"
SDO 0xfa80, "PTP Diag"
  0xfa80:00, r-r-r-, uint8, 8 bit, "SubIndex 000"
  0xfa80:01, r-r-r-, type 080d, 16 bit, "PTP Version"
  0xfa80:02, r-r-r-, type 080e, 16 bit, "PTP State"
  0xfa80:03, r-r-r-, octet_string, 64 bit, "Clock Identity"
  0xfa80:04, r-r-r-, octet_string, 80 bit, "Parent Port Identity"
  0xfa80:05, r-r-r-, octet_string, 64 bit, "Grandmaster Identity"
  0xfa80:06, r-r-r-, int32, 32 bit, "Offset From Master (ns)"
  0xfa80:07, r-r-r-, int32, 32 bit, "Mean Path Dealy (ns)"
  0xfa80:08, r-r-r-, uint16, 16 bit, "Steps Removed"
  0xfa80:09, r-r-r-, uint16, 16 bit, "Sync Event Sequence Number"
  0xfa80:0a, r-r-r-, type 080f, 16 bit, "Timescale"
  0xfa80:0b, r-r-r-, int16, 16 bit, "CurrentUtcOffset"
  0xfa80:0c, r-r-r-, type 0812, 16 bit, "CurrentUtcOffsetIsValid"
  0xfa80:0d, r-r-r-, type 0811, 16 bit, "Leap61"
  0xfa80:0e, r-r-r-, type 0810, 16 bit, "Leap59"
  0xfa80:0f, r-r-r-, uint16, 16 bit, "Epoch_Number"


More information about the Etherlab-users mailing list