null  null
Anybus® CompactCom™ 40
Common Ethernet
DESIGN GUIDE
HMSI-27–269 2.1
ENGLISH
Important User Information
Liability
Every care has been taken in the preparation of this document. Please inform HMS Industrial Networks AB of any
inaccuracies or omissions. The data and illustrations found in this document are not binding. We, HMS Industrial
Networks AB, reserve the right to modify our products in line with our policy of continuous product development.
The information in this document is subject to change without notice and should not be considered as a commitment by HMS Industrial Networks AB. HMS Industrial Networks AB assumes no responsibility for any errors that
may appear in this document.
There are many applications of this product. Those responsible for the use of this device must ensure that all the
necessary steps have been taken to verify that the applications meet all performance and safety requirements including any applicable laws, regulations, codes, and standards.
HMS Industrial Networks AB will under no circumstances assume liability or responsibility for any problems that
may arise as a result from the use of undocumented features, timing, or functional side effects found outside the
documented scope of this product. The effects caused by any direct or indirect use of such aspects of the product
are undefined, and may include e.g. compatibility issues and stability issues.
The examples and illustrations in this document are included solely for illustrative purposes. Because of the many
variables and requirements associated with any particular implementation, HMS Industrial Networks AB cannot assume responsibility for actual use based on these examples and illustrations.
Intellectual Property Rights
HMS Industrial Networks AB has intellectual property rights relating to technology embodied in the product described in this document. These intellectual property rights may include patents and pending patent applications in
the USA and other countries.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Table of Contents
1
2
3
4
5
6
7
Page
Preface ............................................................................................................................... 5
1.1
About this document ......................................................................................................5
1.2
Related Documents .......................................................................................................5
1.3
Document History ..........................................................................................................5
1.4
Document Conventions ..................................................................................................5
1.5
Document Specific Conventions......................................................................................6
1.6
Trademark Information ...................................................................................................6
About the Anybus CompactCom 40 Common Ethernet ....................................... 7
2.1
General.........................................................................................................................7
2.2
Features .......................................................................................................................7
Basic Operation............................................................................................................... 8
3.1
General Information .......................................................................................................8
3.2
Software Requirements ..................................................................................................8
3.3
Device Customization.....................................................................................................8
3.4
Communication Settings.................................................................................................9
3.5
Diagnostics ................................................................................................................. 11
3.6
Network Data Exchange ............................................................................................... 11
3.7
File System ................................................................................................................. 11
Firmware Download / Firmware Upgrade ............................................................... 14
4.1
Using Firmware Manager II...........................................................................................14
4.2
Via the Internal File System ..........................................................................................15
FTP Server ...................................................................................................................... 16
5.1
General Information .....................................................................................................16
5.2
User Accounts .............................................................................................................16
5.3
Session Example .........................................................................................................17
Web Server...................................................................................................................... 18
6.1
General Information .....................................................................................................18
6.2
Default Web Pages ......................................................................................................18
6.3
Server Configuration ....................................................................................................21
E-mail Client ................................................................................................................... 24
7.1
General Information .....................................................................................................24
7.2
How to Send E-mail Messages .....................................................................................24
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Table of Contents
8
9
Server Side Include (SSI) ............................................................................................ 25
8.1
General Information .....................................................................................................25
8.2
Include File..................................................................................................................25
8.3
Command Functions ....................................................................................................25
8.4
Argument Functions .....................................................................................................40
8.5
SSI Output Configuration..............................................................................................44
JSON................................................................................................................................. 45
9.1
General Information .....................................................................................................45
9.2
JSON Objects..............................................................................................................45
9.3
Example......................................................................................................................53
10 Anybus Module Objects .............................................................................................. 54
10.1
General Information .....................................................................................................54
10.2
Anybus Object (01h) ....................................................................................................55
10.3
Diagnostic Object (02h) ................................................................................................56
10.4
Network Object (03h) ...................................................................................................57
10.5
Network Configuration Object (04h)...............................................................................58
10.6
Socket Interface Object (07h)........................................................................................65
10.7
SMTP Client Object (09h) .............................................................................................82
10.8
Anybus File System Interface Object (0Ah) ....................................................................87
10.9
Network Ethernet Object (0Ch) .....................................................................................88
11 Host Application Objects ............................................................................................ 89
11.1
General Infomration .....................................................................................................89
11.2
Application File System Interface Object (EAh)...............................................................90
11.3
Ethernet Host Object (F9h) ...........................................................................................91
A Categorization of Functionality ................................................................................. 95
A.1
Basic...........................................................................................................................95
A.2
Extended.....................................................................................................................95
B Implementation Details................................................................................................ 96
B.1
SUP-Bit Definition ........................................................................................................96
B.2
Anybus State Machine .................................................................................................96
B.3
Application Watchdog Timeout Handling ........................................................................96
C Secure HICP (Secure Host IP Configuration Protocol) ....................................... 97
C.1
General.......................................................................................................................97
C.2
Operation ....................................................................................................................97
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Table of Contents
D Technical Specification ............................................................................................... 98
D.1
Front View ...................................................................................................................98
D.2
Functional Earth (FE) Requirements..............................................................................99
D.3
Power Supply ..............................................................................................................99
D.4
Environmental Specification..........................................................................................99
D.5
EMC Compliance.........................................................................................................99
E Copyright Notices .......................................................................................................100
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
This page intentionally left blank
Preface
5 (104)
1
Preface
1.1
About this document
This document is intended to provide a good understanding of the functionality offered by the
Anybus CompactCom 40 Common Ethernet. The document describes the features that are
specific to Anybus CompactCom 40 Common Ethernet. For general information regarding Anybus CompactCom 40, consult the Anybus CompactCom 40 design guides.
The reader of this document is expected to be familiar with high level software design and communication systems in general. The information in this network guide should normally be sufficient to implement a design. However if advanced Ethernet specific functionality is to be used,
in-depth knowledge of Ethernet networking internals and/or information from the official Ethernet specifications may be required. In such cases, the persons responsible for the implementation of this product should either obtain the Ethernet specification to gain sufficient knowledge
or limit their implementation in such a way that this is not necessary.
For additional related documentation and file downloads, please visit the support website at
www.anybus.com/support.
1.2
1.3
1.4
Related Documents
Document
Anybus CompactCom 40 Software Design Guide
Author
HMS
Document ID
HMSI-216–125
Anybus CompactCom M40 Hardware Design Guide
HMS
HMSI-216–126
Anybus CompactCom B40 Design Guide
HMS
HMSI-27-230
Anybus CompactCom Host Application Implementation
Guide
Anybus CompactCom 40 Network Guides
HMS
HMSI-27-334
HMS
Document History
Version
Date
Description
1.00
1.01
1.05
2014-09-09
2014-09-10
2014-09-22
First release
Minor corrections
Major update
1.06
2015-01-22
Minor update
1.10
2015-11-04
Minor update
2.0
2017–01–23
Moved from FM to DOX
Misc. updates.
2.1
2017–07–10
Misc. updates to common objects
Document Conventions
Ordered lists are used for instructions that must be carried out in sequence:
1.
First do this
2.
Then do this
Unordered (bulleted) lists are used for:
•
Itemized information
•
Instructions that can be carried out in any order
...and for action-result type instructions:
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Preface
6 (104)
►
This action...
➨
leads to this result
Bold typeface indicates interactive parts such as connectors and switches on the hardware, or
menus and buttons in a graphical user interface.
Monospaced text is used to indicate program code and other
kinds of data input/output such as configuration scripts.
This is a cross-reference within this document: Document Conventions, p. 5
This is an external link (URL): www.hms-networks.com
This is additional information which may facilitate installation and/or operation.
This instruction must be followed to avoid a risk of reduced functionality and/or
damage to the equipment, or to avoid a network security risk.
Caution
This instruction must be followed to avoid a risk of personal injury.
WARNING
This instruction must be followed to avoid a risk of death or serious injury.
1.5
1.6
Document Specific Conventions
•
The terms “Anybus” or “module” refers to the Anybus CompactCom module.
•
The terms “host” or “host application” refer to the device that hosts the Anybus.
•
Hexadecimal values are written in the format NNNNh or 0xNNNN, where NNNN is the hexadecimal value.
•
A byte always consists of 8 bits.
•
The terms “basic” and “extended” are used to classify objects, instances and attributes.
Trademark Information
Anybus® is a registered trademark of HMS Industrial Networks AB.
All other trademarks are the property of their respective holders.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
About the Anybus CompactCom 40 Common Ethernet
7 (104)
2
About the Anybus CompactCom 40 Common
Ethernet
2.1
General
The Anybus CompactCom 40 Common Ethernet communication module provides a common
platform for the Industrial Ethernet networks, that are supported in the Anybus CompactCom 40
product family. The communication software for the selected network is downloaded to the module and the module will seamlessly integrate to the network. It is also possible to use the module
as a general Ethernet interface, using the included TCP/IP stack (See Socket Interface Object
(07h), p. 65). The modular approach of the Anybus CompactCom 40 platform allows the module
to be customized, allowing the end product to appear as a vendor-specific implementation
rather than a generic Anybus module. This product conforms to all aspects of the host interface
for Anybus CompactCom 40 modules defined in the Anybus CompactCom 40 Hardware and
Software Design Guides, making it fully interchangeable with any other device following that
specification. Generally, no additional network related software support is needed, however in
order to be able to take full advantage of advanced network specific functionality, a certain degree of dedicated software support may be necessary.
2.2
Features
•
Two Ethernet ports
•
Ethernet RJ45 connectors
•
Common hardware platform for Ethernet networks
•
10/100 Mbit, full/half duplex operation
•
Web server w. customizable content
•
FTP server
•
E-mail client
•
JSON functionality
•
Server Side Include (SSI) functionality
•
Transparent Socket Interface
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Basic Operation
8 (104)
3
Basic Operation
3.1
General Information
At delivery the module supports general Ethernet functionality, such as e.g. FTP and web server. The built in socket interface allows additional protocols to be implemented on top of TCP/IP,
see Socket Interface (Advanced Users Only), p. 9.
Firmware to enable communication with another network, can be downloaded in different ways,
see Firmware Download / Firmware Upgrade, p. 14.
3.2
Software Requirements
Generally, no additional network support code needs to be written in order to support the Anybus CompactCom 40 Common Ethernet. However, certain restrictions must be taken into
account.
•
Certain functionality in the module requires that the command Get_Instance_Number_By_
Order (Application Data Object, FEh) is implemented in the host application.
For in-depth information regarding the Anybus CompactCom 40 software interface, consult the
general Anybus CompactCom 40 Software Design Guide.
See also...
•
Diagnostic Object (02h), p. 56 (Anybus Module Ojbects
•
Anybus CompactCom 40 Software Design Guide, Application Data Object (FEh)
3.3
Device Customization
3.3.1
Network Identity
By default, the module uses the following identity settings:
Vendor ID
005Ah (HMS Industrial Networks)
Device Type
002Bh (Generic Device)
Product Code
00A3h (Common Ethernet)
Product Name
“Anybus CompactCom 40 Common Ethernet”
Depending on network downloaded, it is possible to customize the identity of the module by implementing the corresponding instance attributes in the respective network Host Objects.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Basic Operation
3.3.2
9 (104)
Web Interface
The web interface can be fully customized to suit a particular application. Dynamic content can
be created by means JSON and SSI scripting. Data and web pages are stored in a FLASHbased file system, which can be accessed using any standard FTP-client or the File System Interface Object.
See also...
3.3.3
•
File System, p. 11
•
FTP Server, p. 16
•
Web Server, p. 18
•
Server Side Include (SSI), p. 25
•
JSON, p. 45
Socket Interface (Advanced Users Only)
The built in socket interface allows additional protocols to be implemented on top of TCP/IP. Data is structured by the application and is then embedded within the Ethernet frames. The host
application can open network connections of its own to other nodes on the network, e.g. if you
want to connect to another server or use a web server of your own.
See also...
3.4
•
Socket Interface Object (07h), p. 65
•
Message Segmentation, p. 80
Communication Settings
As with other Anybus CompactCom products, network related communication settings are
grouped in the Network Configuration Object (04h).
In this case, this includes...
TCP/IP settings
These settings must be set properly in order for the module to be able to
participate on the network.
The module supports DHCP, which may be used to retrieve the TCP/IP settings
from a DHCP-server automatically. DHCP is enabled by default, but can be
disabled if necessary.
Physical Link Settings
By default, the module uses auto negotiation to establish the physical link
settings, however it is possible to force a specific setting if necessary.
The parameters in the Network Configuration Object (04h) are available from the network
through the built in web server.
See also...
•
Web Server, p. 18
•
Network Configuration Object (04h), p. 58
•
Secure HICP (Secure Host IP Configuration Protocol), p. 97
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Basic Operation
3.4.1
10 (104)
Communication Settings in Stand Alone Shift Register Mode
If the Anybus CompactCom 40 is used stand alone, there is no application from which to set the
IP address. The IP address is instead set using the DIP1 switches (IP address byte 3) and the
virtual attributes (Ethernet Host object (F9h), attribute #17), that are written to memory during
setup (IP address byte 0 - 2). A flowchart is shown below.
Start
Values stored in
Network Configuration
Object instances #3 - #6
will be used
0
DIP1 switch settings
(0 - 255)
255
Check for DHCP
availability
1 - 254
Values stored in
Network Configuration
Object instances #3 - #6
will be used
Yes
DHCP will be used for
communication settings,
that will be stored in
Network Configuration
Object (04h), instances #3 - #6
Use DIP switch settings
for IP address byte 3
Ethernet
Host Object (F9h),
attribute #17
implemented
No
No
Use default value for
IP address bytes 0 - 2:
192.168.0.X
Yes
Use attribute #17 values
for IP address bytes 0 - 2
IP address is stored in Network
Configuration Object (04h),
instance #3
Network Configuration Object (04h)
Instance #4, Subnet mask: 255.255.255.0
Instance #5 Gateway address: 0.0.0.0
Instance 6, DHCP: OFF
End
Fig. 1
See also...
•
Ethernet Host Object (F9h), p. 91
•
Anybus CompactCom M40 Hardware Design Guide
•
Network Configuration Object (04h), p. 58
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Basic Operation
3.5
11 (104)
Diagnostics
Events and their severity value are recorded in the Diagnostic Object.
See also...
•
3.6
Diagnostic Object (02h), p. 56
Network Data Exchange
The Anybus CompactCom 40 Common Ethernet does not perform any network specific handling of the process data.
For information on network data exchange for supported networks, please consult the respective network guides, available at www.anybus.com/support.
3.7
File System
Category: Extended
3.7.1
Overview
The Anybus CompactCom 40 Common Ethernet has an in-built file system, that can be accessed from the application and from the network. Three directories are predefined:
VFS
The virtual file system that e.g. holds the web pages of the module. The virtual file
system is enabled by default in the Anybus File System Interface Object (0Ah).
Application
This directory provides access to the application file system through the
Application File System Interface Object (EAh) (optional).
Firmware
Firmware updates are stored in this directory.
In the firmware folder, it is not possible to use append mode when writing a file. Be sure to use
write mode only.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Basic Operation
12 (104)
Anybus CompactCom
Application
Anybus
CompactCom
File system
File 1
File 2
VFS
File 1
File 2
Application
The Anybus CompactCom accesses
the application file system through the
Application File System Interface Object.
Application
File system
File A1
File A2
Directory A1
File A1:1
Firmware
File A1:2
Fig. 2
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Basic Operation
3.7.2
13 (104)
General Information
The built-in file system hosts 28 MByte of non volatile storage, which can be accessed by the
HTTP and FTP servers, the email client, and the host application (through the Anybus File System Interface Object (0Ah)).
The maximum number of directories and files, that can be stored in the root directory, is 511 if
only short filenames are used (8 bytes name + 3 bytes extension). The number of files that can
be stored in other directories, than the root directory, is unlimited.
The file system uses the following conventions:
•
\ (backslash) is used as a path separator
•
Names may contain spaces, but must not begin or end with one.
•
Valid characters in names are ASCII character numbers less than 127, excluding the following characters: \ / : * ? “ < > |
•
Names cannot be longer than 48 characters
•
A path cannot be longer than 126 characters (filename included)
See also ...
•
FTP Server, p. 16
•
Web Server, p. 18
•
E-mail Client, p. 24
•
Server Side Include (SSI), p. 25
•
Anybus File System Interface Object (0Ah), p. 87
•
Application File System Interface Object (EAh), p. 90
The file system is located in flash memory. Due to technical reasons, each flash
segment can be erased approximately 100000 times before failure, making it
unsuitable for random access storage.
The following operations will erase one or more flash segments:
3.7.3
•
Deleting, moving or renaming a file or directory
•
Writing or appending data to an existing file
•
Formatting the file system
System Files
The file system contains a set of files used for system configuration. These files, known as “system files”, are regular ASCII files which can be altered using a standard text editor (such as the
Notepad in Microsoft Windows™). The format of these files are, with some exceptions, based on
the concept of keys, where each key can be assigned a value, see below.
Example 1:
[Key1]
value of Key1
[Key2]
value of Key2
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Firmware Download / Firmware Upgrade
4
14 (104)
Firmware Download / Firmware Upgrade
Download and upgrade of network communication firmware for a specific industrial Ethernet
network can be performed in different ways.
4.1
Using Firmware Manager II
This tool is available without cost from the HMS Industrial Networks AB support website, www.
anybus.com/support. It can be used to download new firmware or firmware upgrades for all
Anybus CompactCom modules.
Fig. 3
Using the tool, perform the following steps to download new firmware to the module.
1.
Connect a computer with the Firmware Manager II software installed to the network containing the module.
2.
Start the Firmware Manager II tool.
3.
Scan the network and find the module.
4.
Click the Firmware Repository icon in the menu, to open the Firmware Repository window.
Drag the firmware folder into the window to add the new firmware to the repository. Close
the Firmware Reposi tory window.
5.
In the scan window, under the “Available Networks” tab, select the appropriate firmware for
the module. Click the “Change Network” button. A confirmation window will appear. Clicking “Yes” will start the download of the new firmware.
6.
After download, a restart of the module is needed to install the new firmware. If the application allows it, it is possible to restart the module via the “Restart Module” button in the Firmware Manager II tool. If the application does not allow restart from the network, a manual
restart of the module is needed.
For more information, see the help file in the Firmware Manager II software.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Firmware Download / Firmware Upgrade
4.2
15 (104)
Via the Internal File System
The internal file system of the module includes a directory (/firmware), where the new firmware
or the upgrade is stored. The file system can be accessed through FTP or via the File System
Interface Object. The next time the module is started, the new firmware will be installed. After
the firmware is installed, the firmware file is deleted from the /firmware directory.
See also...
•
FTP Server, p. 16
•
File System, p. 11
•
Application File System Interface Object (EAh), p. 90
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
FTP Server
16 (104)
5
FTP Server
5.1
General Information
The built-in FTP-server makes it easy to manage the file system using a standard FTP client. It
can be disabled using attribute #6 in the Ethernet Host Object (F9h).
By default, the following port numbers are used for FTP communication:
•
TCP, port 20 (FTP data port)
•
TCP, port 21 (FTP command port)
The FTP server supports up to two concurrent clients.
5.2
User Accounts
User accounts are stored in the configuration file \ftp.cfg. This file holds the usernames, passwords, and home directory for all users. Users are not able to access files outside of their home
directory.
File Format:
User1:Password1:Homedirectory1
User2:Password2:Homedirectory2
User3:Password3:Homedirectory3
Optionally, the UserN:PasswordN-section can be replaced by a path to a file containing a list of
users as follows:
File Format (\ftp.cfg):
User1:Password1:Homedirectory1
User2:Password2:Homedirectory2
.
.
UserN:PasswordN:HomedirectoryN
\path\userlistA:HomedirectoryA
\path\userlistB:HomedirectoryB
The files containing the user lists shall have the following format:
File Format:
User1:Password1
User2:Password2
User3:Password3
.
.
.UserN:PasswordN
Notes:
•
Usernames must not exceed 16 characters in length.
•
Passwords must not exceed 16 characters in length.
•
Usernames and passwords must only contain alphanumeric characters.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
FTP Server
5.3
17 (104)
•
If \ftp.cfg is missing or cannot be interpreted, all username/password combinations will be
accepted and the home directory will be the FTP root (i.e. \ftp\).
•
The home directory for a user must also exist in the file system, if the user shall be able to
log in. It is not enough just to add the user information to the ftp.cfg file.
•
If Admin Mode has been enabled in the Ethernet Object, all username/password combinations will be accepted and the user will have unrestricted access to the file system (i.e. the
home directory will be the system root). The vfs folder is read-only.
•
It is strongly recommended to have at least one user with root access (\) permission. If not,
Admin Mode must be enabled each time a system file needs to be altered (including \ftp.
cfg).
Session Example
The Windows Explorer features a built-in FTP client which can easily be used to access the file
system as follows:
1.
Open the Windows Explorer.
2.
In the address field, type FTP://<user>:<password>@<address>
3.
–
- Substitute <address> with the IP address of the Anybus module
–
- Substitute <user> with the username
–
- Substitute <password> with the password
Press Enter. The Explorer will now attempt to connect to the Anybus module using the
specified settings. If successful, the file system will be displayed in the Explorer window.
Fig. 4
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Web Server
18 (104)
6
Web Server
6.1
General Information
Category: extended
The built-in web server provides a flexible environment for end-user interaction and configuration purposes. The powerful combination of JSON, SSI, and client-side scripting allows access
to objects and file system data, enabling the creation of advanced graphical user interfaces.
The web interface is stored in the file system, which can be accessed through the FTP server. If
necessary, the web server can be completely disabled in the Ethernet Host Object.
The web server supports up to TBD concurrent connections and communicates through port 80.
See also...
6.2
•
FTP Server, p. 16
•
JSON, p. 45
•
Server Side Include (SSI), p. 25
•
Ethernet Host Object (F9h), p. 91
Default Web Pages
The default web pages provide access to:
•
Network configuration parameters
•
Network status information
•
Access to the host application ADIs
The default web pages are built of files stored in a virtual file system accessible through the vfs
folder. These files are read only and cannot be deleted or overwritten. The web server will first
look for a file in the web root folder. If not found it will look for the file in the vfs folder, making it
appear as the files are located in the web root folder. By loading files in the web root folder with
exactly the same names as the default files in the vfs folder, it is possible to customize the web
pages, replacing such as pictures, logos and style sheets.
If a complete customized web system is designed and no files in the vfs folder are to be used, it
is recommended to turn off the virtual file system completely, see the File System Interface
Object.
See also...
•
File System, p. 11
•
Anybus File System Interface Object (0Ah), p. 87
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Web Server
6.2.1
19 (104)
Network Configuration
The network configuration page provides an interface for changing TCP/IP and SMTP settings
in the Network Configuration Object.
Fig. 5
Fig. 6
The module needs to be reset for the TCP/IP and SMTP settings to take effect. The Ethernet
Configuration settings will take effect immediately.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Web Server
20 (104)
IP Configuration
The module needs a reset for any changes to take effect.
Description
Name
DHCP
Enable or disable DHCP
Default value: enabled
The TCP/IP settings of the module
Default values: 0.0.0.0 Value ranges: 0.0.0.0 - 255.255.255.255
IP address
Subnet mask
Gateway
Host name
IP address or name
Max 64 characters
IP address or name
Max 48 characters
Primary and secondary DNS server, used to resolve host name
Default values: 0.0.0.0 Value ranges: 0.0.0.0 - 255.255.255.255
Domain name
DNS 1
DNS 2
Ethernet Configuration
Changes will take effect immediately.
Description
Name
Port 1
Port 2
Ethernet speed/duplex settings
Default value: auto
SMTP Settings
The module needs a reset before any changes take effect
Description
Name
Server
User
Password
Confirm password
6.2.2
IP address or name
Max 64 characters
Max 64 characters
Max 64 characters
Ethernet Statistics Page
The Ethernet statistics web page contains the following information:
Ethernet Link
Port 1
Speed:
Port 2
Description
The current link speed.
Duplex:
The current duplex configuration.
Speed:
The current link speed.
Duplex:
The current duplex configuration.
Interface Counters
In Octets:
Description
In Ucast Packets:
Received unicast packets.
In NUcast packets:
Received non unicast packets (broadcast and multicast).
In Discards:
Received packets discarded due to no available memory buffers.
In Errors:
Received packets discarded due to reception error.
In Unknown Protos:
Received packets with unsupported protocol type.
Out Octets:
Sent bytes.
Out Ucast packets:
Sent unicast packets.
Out NUcast packets:
Sent non unicast packets (broadcast and multicast).
Received bytes.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Web Server
21 (104)
Interface Counters
Out Discards:
Description
Out Errors:
Transmission errors.
Media Counters
Alignment Errors
Description
FCS Errors
Frames received that do not pass the FCS check.
Single Collisions
Successfully transmitted frames which experienced exactly one collision.
Multiple Collisions
Successfully transmitted frames which experienced more than one
collision.
Number of times SQE test error messages are generated.
(Not provided with current PHY interface.)
Outgoing packets discarded due to no available memory buffers.
Frames received that are not an integral number of octets in length.
SQE Test Errors
Deferred Transmissions
Frames for which first transmission attempt is delayed because the medium is busy.
Late Collisions
Number of times a collision is detected later than 512 bit-times into the
transmission of a packet.
Excessive Collisions
MAC Receive Errors
Frames for which a transmission fails due to excessive collisions.
Frames for which reception of an interface fails due to an internal MAC
sublayer receive error.
MAC Transmit Errors
Frames for which transmission fails due to an internal MAC sublayer receive error.
Times that the carrier sense condition was lost or never asserted when attempted to transmit a frame.
Carrier Sense Errors
Frame Size Too Long
Frames received that exceed the maximum permitted frame size.
Frame Size Too Short
Frames received that are shorter than lowest permitted frame size.
6.3
Server Configuration
6.3.1
General Information
Basic web server configuration settings are stored in the system file \http.cfg. This file holds the
web server name, root directory for the web interface, content types, and a list of file types
which shall be scanned for SSI.
File Format:
[ServerName]
WebServerName
[WebRoot]
\web
[FileTypes]
FileType1:ContentType1
FileType2:ContentType2
...
FileTypeN:ContentTypeN
[SSIFileTypes]
FileType1
FileType2
...
FileTypeN
Web Server Name
[ServerName]
Configures the web server name included in the HTTP header of the responses
from the module.
Web Root Directory
The web server cannot access files outside this directory.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Web Server
22 (104)
[WebRoot]
Content Types
[FileTypes]
A list of file extensions and their reported content types.
See also...
Default content types below
SSI File Types
[SSIFileTypes]
By default, only files with the extension “shtm” are scanned for SSI. Additional SSI
file types can be added here as necessary.
The web root directory determines the location of all files related to the web interface. Files outside of this directory and its subdirectories cannot be accessed by the web server.
6.3.2
Index page
The module searches for possible index pages in the following order:
1.
<WebRoot>\index.htm
2.
<WebRoot>\index.html
3.
<WebRoot>\index.shtm
4.
<WebRoot>\index.wml
Substitute <WebRoot> with the web root directory specified in \http.cfg.
If no index page is found, the module will default to the virtual index file (if enabled).
See also ...
•
6.3.3
Default web pages
Default Content Types
By default, the following content types are recognized by their file extension:
File Extension
Reported Content Type
htm, html, shtm
text/html
gif
image/gif
jpeg, jpg, jpe
image/jpeg
png
image/x-png
js
application/x-javascript
bat, txt, c, h, cpp, hpp
text/plain
zip
application/x-zip-compressed
exe, com
application/octet-stream
wml
text/vnd.wap.wml
wmlc
application/vnd.wap.wmlc
wbmp
image/vnd.wap.wbmp
wmls
text/vnd.wap.wmlscript
wmlsc
application/vnd.wap.wmlscriptc
xml
text/xml
pdf
application/pdf
css
text/css
Content types can be added or redefined by adding them to the server configuration file.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Web Server
6.3.4
23 (104)
Authorization
Directories can be protected from web access by placing a file called “web_accs.cfg” in the directory to protect. This file shall contain a list of users that are allowed to access the directory
and its subdirectories.
Optionally, a login message can be specified by including the key [AuthName]. This message
will be displayed by the web browser upon accessing the protected directory.
File Format:
Username1:Password1
Username2:Password2
...
UsernameN:PasswordN
[AuthName]
(message goes here)
The list of approved users can optionally be redirected to one or several other files.
If the list of approved users is put in another file, be aware that this file can be accessed and read
from the network.
In the following example, the list of approved users will be loaded from here.cfg and too.cfg.
[File path]
\i\put\some\over\here.cfg
\i\actually\put\some\of\it\here\too.cfg
[AuthType]
Basic
[AuthName]
Howdy. Password, please.
The field “AuthType” is used to identify the authentication scheme.
Value
Basic
Description
Digest
More secure method using challenge-response authentication. Used as default if no [Authtype] field is specified.
Web authentication method using plaintext passwords.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
E-mail Client
24 (104)
7
E-mail Client
7.1
General Information
The built-in e-mail client allows the application to send e-mail messages through an SMTP-server. Messages can either be specified directly in the SMTP Client Object (04h), or retrieved from
the file system. The latter may contain SSI, however note that for technical reasons, certain
commands cannot be used (specified separately for each SSI command).
The client supports authentication using the ‘LOGIN’ method. Account settings etc. are stored
in the Network Configuration Object (04h).
7.2
How to Send E-mail Messages
To be able to send e-mail messages, the SMTP-account settings must be specified.
This includes:
•
A valid SMTP-server address
•
A valid username
•
A valid password
To send an e-mail message, perform the following steps:
1.
Create a new e-mail instance using the Create command (03h)
2.
Specify the sender, recipient, topic and message body in the e-mail instance
3.
Issue the Send Instance Email command (10h) towards the e-mail instance
4.
Optionally, delete the e-mail instance using the Delete command (04h)
Sending a message based on a file in the file system is achieved using the Send Email from File
command. This command is described in the SMTP Client Object (04h).
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
25 (104)
8
Server Side Include (SSI)
8.1
General Information
Server Side Include functionality, or SSI, allows data from files and objects to be represented on
web pages and in e-mail messages.
SSI are special commands embedded within the source document. When the Anybus CompactCom module encounters such a command, it will execute it, and replace it with the result (if
applicable).
By default, only files with the extension ‘shtm’ are scanned for SSI.
8.2
Include File
This function includes the contents of a file. The content is scanned for SSI.
This function cannot be used in e-mail messages.
Syntax:
<?--#include file="filename"-->
filename:
Source file
Scenario
Default Output
Success
(contents of file)
8.3
Command Functions
8.3.1
General Information
Command functions executes commands and includes the result.
General Syntax
<?--#exec cmd_argument='command'-->
command:
Command function, see below
“command” is limited to a maximum of 500 characters.
Command Functions
Command
Valid for E-mail Messages
GetConfigItem()
Yes
SetConfigItem()
No
SsiOutput()
Yes
DisplayRemoteUser
No
ChangeLanguage()
No
IncludeFile()
Yes
SaveDataToFile()
No
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.2
26 (104)
Command
Valid for E-mail Messages
printf()
Yes
scanf()
No
GetConfigItem()
This command returns specific information from a file in the file system.
File Format
The source file must have the following format:
[key1]
value1
[key2]
value2
...
[keyN]
valueN
Syntax:
<?--exec cmd_argument='GetConfigItem("filename", "key"[,"separator"])'-->
filename:
key:
Source file to read from
Source [key] in file.
separator:
Optional; specifies line separation characters (e.g. “<br>”).
(default is CRLF).
Default Output
Scenario
Default Output
Success
(value of specified key)
Authentication Error
File open error
“Authentication error”
“Failed to open file ‘filename’”
Key not found
“Tag (key) not found”
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
27 (104)
Example
The following SSI...
<?--exec cmd_argument='GetConfigItem("\example.cnf", "B")'-->
... in combination with the following file (‘\example.cnf’)...
[A]
First
[B]
Second
[C]
Third
... returns the string ‘Third’.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.3
28 (104)
SetConfigItem()
This function stores an HTML-form as a file in the file system.
This function cannot be used in e-mail messages.
File Format
Each form object is stored as a [tag], followed by the actual value.
[form object name 1]
form object value 1
[form object name 2]
form object value 2
[form object name 3]
form object value 3
...
[form object name N]
form object value N
Form objects with names starting with underscore will not be stored.
Syntax:
<?--exec cmd_argument='SetConfigItem("filename"[, Overwrite])'-->
filename:
Destination file. If the specified file does not exist, it will be created (provided that the
path is valid).
Overwrite:
Optional; forces the module to create a new file each time the command is issued.
The default behavior is to modify the existing file.
Default Output
Scenario
Default Output
Success
“Configuration stored to‘filename’”
Authentication Error
File open error
“Authentication error”
“Failed to open file ‘filename’”
File write error
“Could not store configuration to ‘filename’”
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
29 (104)
Example
The following example demonstrates how to use this function. The resulting page sends a form
to itself, which is then evaluated by the SetConfigItem command.
<HTML>
<HEAD><TITLE>SetConfigItem Test</TITLE></HEAD>
<BODY>
<?--#exec cmd_argument='SetConfigItem("\food.txt")'-->
<FORM action="test.shtm">
<P>
<LABEL for="Name">Name: </LABEL><BR>
<INPUT type="text" name="Name"><BR><BR>
<LABEL for="_Age">Age: </LABEL><BR>
<INPUT type="text" name="_Age"><BR><BR>
<LABEL for="Food">Food: </LABEL><BR>
<INPUT type="radio" name="Food" value="Cheese"> Cheese<BR>
<INPUT type="radio" name="Food" value="Sausage"> Sausage<BR><BR>
<LABEL for="Drink">Drink: </LABEL><BR>
<INPUT type="radio" name="Drink" value="Wine"> Wine<BR>
<INPUT type="radio" name="Drink" value="Beer"> Beer<BR><BR>
<INPUT type="submit" name="_submit">
<INPUT type="reset" name="_reset">
</P>
</FORM>
</BODY>
</HTML>
The resulting file (‘\food.txt’) may look somewhat as follows:
[Name]
Cliff Barnes
[Food]
Cheese
[Drink]
Beer
In order for this example to work, the HTML file must be named “test.shtm”.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.4
30 (104)
SsiOutput()
This command temporarily modifies the SSI output of the following command function.
Syntax:
<?--#exec cmd_argument='SsiOutput("success", "failure")'-->
success:
String to use in case of success
failure:
String to use in case of failure
Default Output
(this command produces no output on its own)
Example
The following example illustrates how to use this command.
<?--#exec cmd_argument='SsiOutput ("Parameter stored", "Error")'-->
<?--#exec cmd_argument='SetConfigItem("File.cfg", Overwrite)'-->
See also...
•
8.3.5
SSI Output Configuration, p. 44
DisplayRemoteUser
This command stores returns the username on an authentication session.
This command cannot be used in e-mail messages.
Syntax:
<?--#exec cmd_argument='DisplayRemoteUser'-->
Default Output
Scenario
Default Output
Success
(current user)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.6
31 (104)
ChangeLanguage()
This command changes the language setting based on an HTML form object.
This function cannot be used in e-mail messages.
Syntax:
<?--#exec cmd_argument='ChangeLanguage( "source" )'-->
source:
Name of form object which contains the new language setting.
The passed value must be a single digit as follows:
Form value
Language
“0”
English
“1”
“2”
German
Spanish
“3”
“4”
Italian
French
Default Output
Scenario
Default Output
Success
“Language changed”
Error
“Failed to change language”
Example
The following example demonstrates how to use this function. The resulting page sends a form
to itself, which is then evaluated by the ChangeLanguage() command.
<HTML>
<HEAD><TITLE>ChangeLanguage Test</TITLE></HEAD>
<BODY>
<?--#exec cmd_argument='ChangeLanguage("lang")'-->
<FORM action="test.shtm">
<P>
<LABEL for="lang">Language(0-4): </LABEL><BR>
<INPUT type="text" name="lang"><BR><BR>
<INPUT type="submit" name="_submit">
</P>
</FORM>
</BODY>
</HTML>
In order for this example to work, the HTML file must be named “test.shtm”.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.7
32 (104)
IncludeFile()
This command includes the content of a file. Note that the content is not scanned for SSI.
Syntax:
<?--#exec cmd_argument='IncludeFile("filename" [, separator])'-->
filename:
separator:
Source file
Optional; specifies line separation characters (e.g. “<br>”).
Default Output
Scenario
Default Output
Success
(file contents)
Authentication Error
“Authentication error”
File Open Error
“Failed to open file ‘filename’”
Example
The following example demonstrates how to use this function.
<HTML>
<HEAD><TITLE>IncludeFile Test</TITLE></HEAD>
<BODY>
<H1> Contents of ‘info.txt’:</H1>
<P>
<?--#exec cmd_argument='IncludeFile("info.txt")'-->.
</P>
</BODY>
</HTML>
Contents of ‘info.txt’:
Neque porro quisquam est qui dolorem ipsum quia dolor sit
amet,consectetur, adipisci velit...
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
33 (104)
When viewed in a browser, the resulting page should look somewhat as follows:
Fig. 7
See also...
•
Include File, p. 25
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.8
34 (104)
SaveDataToFile()
This command stores data from an HTML form as a file in the file system. Content from the different form objects are separated by a blank line (2*CRLF).
This function cannot be used in e-mail messages.
Syntax:
<?--#exec cmd_argument='SaveDataToFile("filename" [, "source"],
Overwrite|Append)'-->
filename
Destination file. If the specified file does not exist, it will be created (provided that the
path is valid).
source:
Optional; by specifying a form object, only data from that particular form object will be
stored. Default behavior is to store data from all form objects except the ones where
the name starts with underscore.
Specifies whether to overwrite or append data to existing files.
Overwrite|Append
Default Output
Scenario
Default Output
Success
“Configuration stored to ‘filename’”
Authentication Error
File Write Error
“Authentication error”
“Could not store configuration to ‘filename’”
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
35 (104)
Example
The following example demonstrates how to use this function. The resulting page sends a form
to itself, which is then evaluated by the SaveDataToFile command.
<HTML>
<HEAD><TITLE>SaveDataToFile Test</TITLE></HEAD>
<BODY>
<?--#exec cmd_argument='SaveDataToFile("\stuff.txt", “Meat”, Overwrite)'-->
<FORM action="test.shtm">
<P>
<LABEL for="Fruit">Fruit: </LABEL><BR>
<INPUT type="text" name="Fruit"><BR><BR>
<LABEL for="Meat">Meat: </LABEL><BR>
<INPUT type="text" name="Meat"><BR><BR>
<LABEL for="Meat">Bread: </LABEL><BR>
<INPUT type="text" name="Bread"><BR><BR>
<INPUT type="submit" name="_submit">
</P>
</FORM>
</BODY>
</HTML>
The resulting file (\stuff.txt) will contain the value specified for the form object called “Meat”.
In order for this example to work, the HTML file must be named “test.shtm”.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.9
36 (104)
printf()
This function returns a formatted string which may contain data from the Anybus CompactCom
module and/or application. The formatting syntax used is similar to that of the standard C-function printf().
The function accepts a template string containing zero or more formatting tags, followed by a
number of arguments. Each formatting tag corresponds to a single argument, and determines
how that argument shall be converted to human readable form.
Syntax:
<?--#exec cmd_argument='printf("template" [, argument1, ..., argumentN])'-->
template:
Template which determines how the arguments shall be represented. May contain any
number of formatting tags which are substituted by subsequent arguments and formatted as requested. The number of format tags must match the number of arguments; if
not, the result is undefined.
See section “Formatting Tags” below for more information.
argument:
Source arguments; optional parameters which specify the actual source of the data
that shall be inserted in the template string. The number of arguments must match the
number of formatting tags; if not, the result is undefined.
At the time of writing, the only allowed argument is ABCCMessage().
See also...
•
ABCCMessage(), p. 40
Default Output
Scenario
Default Output
Success
(printf() result)
ABCCMessage error
ABCCMessage error string (Errors, p. 43)
Example
See ..
•
ABCCMessage(), p. 40
•
Example (Get_Attribute):, p. 42
Formatting Tags
Formatting tags are written as follows:
%[Flags][Width][.Precision][Modifier]type
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
•
37 (104)
Type (Required)
The Type-character is required and determines the basic representation as follows:
•
•
•
Type
Character
c
Representation
Example
Single character
b
d, i
Signed decimal integer.
565
e, E
Floating-point number in exponential notation.
5.6538e2
f
Floating-point number in normal, fixed-point notation.
565.38
g, G
%e or %E is used if the exponent is less than -4 or greater
than or equal to the precision; otherwise %f is used. Trailing
zeroes/decimal point are not printed.
565.38
o
Unsigned octal notation
1065
s
String of characters
Text
u
Unsigned decimal integer
4242
x, X
Hexadecimal integer
4e7f
%
Literal %; no assignment is made
%
Flags (Optional)
Flag
Character
-
Meaning
+
Always include a + or - to indicate whether the number is positive or negative
Left-justify the result within the give width (default is right justification)
(space)
If the number does not start with a + or -, prefix it with a space character instead.
0 (zero)
Pad the field with zeroes instead of spaces
#
For %e, %E, and %f, forces the number to include a decimal point, even if no digits follow.
For %x and %X, prefixes 0x or 0X, respectively.
Width (Optional)
Width
Meaning
number
Specifies the minimum number of characters to be printed.
If the value to be printed is shorter than this number, the result is padded to make up the
field width. The result is never truncated even if the result is larger.
Precision (Optional)
The exact meaning of this field depends on the type character:
Type
Character
d, i, o, u, x, X
•
Meaning
Specifies the minimum no. of decimal digits to be printed. If the value to be printed is
shorter than this number, the result is padded with space. Note that the result is never
truncated, even if the result is larger.
e, E, f
Specifies the no. of digits to be printed after the decimal point (default is 6).
g, G
Specifies the max. no. of significant numbers to be printed.
s
Specifies the max. no. of characters to be printed
c
(no effect)
Modifier
Modifier
Character
hh
Meaning
h
Argument is interpreted as SINT16 or UINT16
L
Argument is interpreted as SINT32 or UINT32
Argument is interpreted as SINT8 or UINT8
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.3.10
38 (104)
scanf()
This function is very similar to the printf() function described earlier, except that it is used for input rather than output. The function reads a string passed from an HTML form object, parses
the string as specified by a template string, and sends the resulting data to the specified argument. The formatting syntax used is similar to that of the standard C-function scanf().
The function accepts a source, a template string containing zero or more formatting tags, followed by a number of arguments. Each argument corresponds to a formatting tag, which determines how the data read from the HTML form shall be interpreted prior sending it to the
destination argument.
This command cannot be used in e-mail messages.
Syntax:
<?--#exec cmd_argument='scanf("source", "template" [,
argument1, ..., argumentN])'-->
source
Name of the HTML form object from which the string shall be extracted.
template:
Template which specifies how to parse and interpret the data. May contain any number
of formatting tags which determine the conversion prior to sending the data to subsequent arguments. The number of formatting tags must match the number of arguments; if not, the result is undefined.
See section “Formatting Tags” below for more information.
argument:
Destination argument(s) specifying where to send the interpreted data. The number of
arguments must match the number of formatting tags; if not, the result is undefined.
At the time of writing, the only allowed argument is ABCCMessage().
See also...
•
ABCCMessage(), p. 40
Default Output
Scenario
Default Output
Success
Parsing error
“Success”
“Incorrect data format”
Too much data for argument
“Too much data”
ABCCMessage error
ABCCMessage error string (Errors, p. 43)
Example
See also...
ABCCMessage(), p. 40
Example (Set_Attribute):, p. 42
Formatting Tags
Formatting tags are written as follows:
%[*][Width][Modifier]type
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
•
39 (104)
Type (Required)
The Type-character is required and determines the basic representation as follows:
Type
Input
Argument Data Type
c
Single character
CHAR
d
Accepts a signed decimal integer
i
u
Accepts a signed or unsigned decimal integer. May be given
as decimal, hexadecimal or octal, determined by the initial
characters of the input data:
Initial Characters: Format:
0x Hexadecimal
0: Octal
1... 9: Decimal
Accepts an unsigned decimal integer.
SINT8
SINT16
SINT32
SINT8/UINT8
SINT16/UINT16
SINT32/UINT32
o
Accepts an optionally signed octal integer.
x, X
Accepts an optionally signed hexadecimal integer.
e, E,
f,
g, G
Accepts an optionally signed floating point number. The input
format for floating-point numbers is a string of digits, with
some optional characteristics:
–
–
•
It can be a signed value
It can be an exponential value, containing a decimal rational number followed by an exponent field, which consists of an ‘E’ or an ‘e’ followed by an integer.
n
Consumes no input; the corresponding argument is an integer
into which scanf writes the number of characters read from
the object input.
s
Accepts a sequence of nonwhitespace characters
[scanset]
Accepts a sequence of nonwhitespace characters from a set
of expected bytes specified by the scanlist (e.g
‘[0123456789ABCDEF]’)
A literal ‘]’ character can be specified as the first character of
the set. A caret character (^) immediately following the initial
‘[’ inverts the scanlist, i.e. allows all characters except the
ones that are listed.
Accepts a single %input at this point; no assignment or conversion is done. The complete conversion specification should
be %%.
%
UINT8
UINT16
UINT32
SINT8/UINT8
SINT16/UINT16
SINT32/UINT32
SINT8/UINT8
SINT16/UINT16
SINT32/UINT32
FLOAT
SINT8/UINT8
SINT16/UINT16
SINT32/UINT32
STRING
STRING
-
* (Optional)
Data is read but ignored. It is not assigned to the corresponding argument.
•
Width (Optional)
Specifies the maximum number of characters to be read
•
Modifier (Optional)
Specifies a different data size.
Modifier
Meaning
h
SINT8, SINT16, UINT8 or UINT16
l
SINT32 or UINT32
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
40 (104)
8.4
Argument Functions
8.4.1
General Information
Argument functions are supplied as parameters to certain command functions.
General Syntax:
(Syntax depends on context)
Argument Functions:
8.4.2
Function
Description
ABCCMessage()
-
ABCCMessage()
This function issues an object request towards an object in the module or in the host application.
Syntax
ABCCMessage(object, instance, command, ce0, ce1,
msgdata, c_type, r_type)
object
Specifies the Destination Object
instance
Specifies the Destination Instance
command
Specifies the Command Number
ce0
Specifies CmdExt[0] for the command message
ce1
Specifies CmdExt[1] for the command message
msgdata
Specifies the actual contents of the MsgData[] subfield in the command
•
Data can be supplied in direct form (format depends on c_type)
•
The keyword “ARG” is used when data is supplied by the parent command (e.g.
scanf()).
c_type:
Specifies the data type in the command (msgdata), see below.
r_type:
Specifies the data type in the response (msgdata), see below.
Numeric input can be supplied in the following formats:
Decimal (e.g. 50)
(no prefix)
Octal (e.g. 043)
Prefix 0 (zero)
Hex (e.g. 0x1f)
Prefix 0x
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
•
41 (104)
Command Data Types (c_type)
For types which support arrays, the number of elements can be specified using the suffix
[n], where n specifies the number of elements. Each data element must be separated by
space.
•
Type
Supports Arrays
Data format (as supplied in msgdata)
BOOL
SINT8
SINT16
SINT32
UINT8
UINT16
UINT32
CHAR
STRING
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
1
-25
2345
-2569
245
40000
32
A
“abcde”
Note: Quotes can be included in the string if preceded by backslash(“\”)
Example: “We usually refer to it as \‘the Egg\’”
FLOAT
NONE
Yes
No
5.6538e2
Command holds no data, hence no data type
Response Data Types (r_type)
For types which support arrays, the number of elements can be specified using the suffix
[n], where n specifies the number of elements.
Type
Supports Arrays
Data format (as supplied in msgdata)
BOOL
Yes
Optionally, it is possible to exchange the BOOL data with a message based on the value (true or false). In such case, the actual
data type returned from the function will be STRING.
Syntax: BOOL<true><false>
For arrays, the format will be BOOL[n]<true><false>.
SINT8
SINT16
SINT32
UINT8
Yes
Yes
Yes
Yes
-
UINT16
UINT32
CHAR
STRING
ENUM
Yes
Yes
Yes
No
No
-
FLOAT
NONE
Yes
No
-
This type can also be used when reading ENUM data types from
an object. In such case, the actual ENUM value will be returned.
When using this data type, the ABCCMessage() function will first
read the ENUM value. It will then issue a ‘Get Enum String’-command to retrieve the actual enumeration string. The actual data
type in the response will be STRING.
Response holds no data, hence no data type
It is important to note that the message will be passed transparently to the
addressed object. The SSI engine performs no checks for violations of the object
addressing scheme, e.g. a malformed Get_Attribute request which (wrongfully)
includes message data will be passed unmodified to the object, even though this is
obviously wrong. Failure to observe this may cause loss of data or other undesired
side effects.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
42 (104)
Example (Get_Attribute):
This example shows how to retrieve the IP address using printf() and ABCCMessage().
<?--#exec cmd_argument='printf( "%u.%u.%u.%u",
ABCCMessage(4,3,1,5,0,0,NONE,UINT8[4] ) )'-->
Variable
object
Value
4
Comments
Network Configuration Object (04h)
instance
3
Instance #3 (IP address)
command
1
Get_attribute
ce0
ce1
msgdata
5
0
0
Attribute #5
-
c_type
NONE
Command message holds no data
r_type
UINT8[4]
Array of 4 unsigned 8-bit integers
Example (Set_Attribute):
This example shows how to set the IP address using scanf() and ABCCMessage(). Note the
special parameter value “ARG”, which instructs the module to use the passed form data (parsed
by scanf() ).
<?--#exec cmd_argument='scanf("IP", "%u.%u.%u.%u",
ABCCMessage(4,3,2,5,0,ARG,UINT8[4],NONE ) )'-->
Variable
object
Value
4
Comments
Network Configuration Object (04h)
instance
3
Instance #3 (IP address)
command
2
Set_attribute
ce0
ce1
msgdata
5
0
ARG
Attribute #5
-
c_type
UINT8[4]
Array of 4 unsigned 8-bit integers
r_type
NONE
Response message holds no data
Anybus® CompactCom™ 40 Common Ethernet Design Guide
Use data parsed by scanf() call
HMSI-27–269 2.1
Server Side Include (SSI)
43 (104)
Errors
In case an object request results in an error, the error code in the response will be evaluated
and translated to readable form as follows:
Error Code
Output
0
1
2
“Unknown error”
“Unknown error”
“Invalid message format”
3
“Unsupported object”
4
“Unsupported instance”
5
“Unsupported command”
6
“Invalid CmdExt[0]”
7
“Invalid CmdExt[1]”
8
9
“Attribute access is not set-able”
“Attribute access is not get-able”
10
“Too much data in msg data field”
11
“Not enough data in msg data field”
12
“Out of range”
13
14
15
“Invalid state”
“Out of resources”
“Segmentation failure”
16
“Segmentation buffer overflow”
17... 255
“Unknown error”
See also...
SSI Output Configuration, p. 44
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Server Side Include (SSI)
8.5
44 (104)
SSI Output Configuration
Optionally, the SSI output can be permanently changed by adding the file \output.cfg.
File format:
[ABCCMessage_X]
0:“Success string”
1:“Error string 1”
2:“Error string 2”
...
16“:Error string 16”
Each error code corresponds to a dedicated output string, labelled from 1 to 16.
See Errors, p. 43
[GetConfigItem_X]
0: “Success string”
1:“Authentication error string”
2:“File open error string”
3:“Tag not found string”
Use “%s” to include the name of the file.
[SetConfigItem_X]
0: “Success string”
1:“Authentication error string”
2:“File open error string”
3:“File write error string”
Use “%s” to include the name of the file.
[IncludeFile_X]
0: “Success string”
1:“Authentication error string”
2:“File read error string”
Use “%s” to include the name of the file.
[scanf_X]
0: “Success string”
1:“Parsing error string”
-
[ChangeLanguage_X]
0: “Success string”
1:“Change error string”
-
All content above can be included in the file multiple times changing the value “X” in each tag
for different languages. The module will then select the correct output string based on the language settings. If no information for the selected language is found, it will use the default SSI
output.
Value of X
Language
0
English
1
2
German
Spanish
3
4
Italian
French
See also...
•
SsiOutput(), p. 30
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
45 (104)
9
JSON
9.1
General Information
JSON is an acronym for JavaScript Object Notation and an open standard format for storing
and exchanging data in an organized and intuitive way. It is used as an alternative to XML, to
transmit data objects consisting of attribute - value pairs between a server and a web application. JavaScripts are used to create dynamic web pages to present the values.
JSON is more versatile than SSI in that you not only can change the values on a web page, but
also the size and the look of the web page dynamically. A simple example of how to create a
web page is added at the end of this chapter.
JSON requests shall be UTF-8 encoded. The module will interpret JSON requests as UTF-8 encoded, while all other HTTP requests will be interpreted as ISO-8859-1 encoded. All JSON responses, sent by the module, are UTF-8 encoded, while all other files sent by the web server
are encoded as stored in the file system.
9.1.1
Access
The JSON resources should be password protected. Add password protection by adding a file
called web_accs.cfg in the root directory.
9.2
JSON Objects
9.2.1
ADI
info.json
GET adi/info.json[?callback=<function>].
This object holds data common to all ADIs that are static during runtime. Optionally, a callback
may be passed to the GET-request for JSONP output.
Name
Data Type
Note
dataformat
Number
0 = Little endian
1 = Big endian
(Affects value, min and max representations)
numadis
webversion
Number
Number
Total number of ADIs
Web/JSON API version
JSON object layout:
{
"dataformat": 0,
"numadis":
123,
"webversion": 1
}
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
46 (104)
data.json
GET adi/data.json?offset=<offset>&count=<count>[&callback=<function>].
This object call fetches values for up to <count> ADIs, starting from <offset> in a list sorted by
ADI order number. The values may change at any time during runtime. Optionally, a callback
may be passed to the GET-request for JSONP output.
JSON object layout:
[
"FF",
"A201",
"01FAC105"
]
metadata.json
GET adi/metadata.json?offset=<offset>&count=<count>[&callback=<function>].
This object call fetches metadata for up to <count> ADIs, starting from <offset> in a list sorted
by ADI order number. This data is static during runtime. Optionally, a callback may be passed to
the GET-request for JSONP output.
Name
Data Type
Note
instance
name
Number
String
-
numelements
datatype
Number
Number
-
min
String
Minimum value. May be NULL if no minimum value is present.
max
String
Maximum value. May be NULL of no maximum value is present.
access
Number
Bit 0: Read accessBit 1: Write access
May be NULL if no name is present.
JSON object layout:
[
{
"instance":
"name":
"numelements":
"datatype":
"min":
"max":
"access":
1,
"Temperature threshold",
1,
0,
"00",
"FF",
0x03
},
{
nine more...
}
]
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
47 (104)
enum.json
GET adi/enum.json?inst=<instance>[&value=<element>][&callback=<function>].
This object call fetches enum strings for the instance <instance>. If an <element> is specified,
only the enum string for that value is returned. If no enum strings are available, an empty list is
returned. Optionally, a callback may be passed to the GET-request for JSONP output.
Name
Data Type
Note
string
String
-
value
Number
-
JSON object layout:
[
{
"string": "String for value 1",
......"value": 1
},
{
"string": "String for value 1",
......"value": 1
...},
...
]
update.json
POST adi/update.json - form data:
inst=<instance>&value=<data>[&elem=<element>][&callback=<function>].
Updates the value of an ADI for the specified ADI instance <instance>. The value, <data>, shall
be hex formatted (see Hex Format Explained, p. 53 for more information). If <element> is specified, only the value of the specified element is updated. In this case, <data> shall only update
that single element value. When <element> is not specified, <data> shall represent the entire
array value. Optionally, a callback may be passed to the request for JSONP output
Name
Data Type
Note
result
Number
0 = success
POST adi/update.json - form data: inst=15&value=FF01
{
"result" : 0
}
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
9.2.2
48 (104)
Module
info.json
GET module/info.json
Name
Data Type
Note
modulename
String
-
serial
String
32 bit hex ASCII
fwver
Array of Number
(major, minor, build)
uptime
Array of Number
[high, low] milliseconds (ms)
cpuload
Number
CPU load in %
JSON object layout:
{
"modulename":
"serial":
"fwver":
"uptime":
"cpuload":
"ABCC M40",
"ABCDEF00",
[ 1, 5, 0 ],
[ 5, 123456 ],
55
}
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
9.2.3
49 (104)
Network
ethstatus.json
GET network/ethstatus.json.
Name
Data Type
Note
mac
String
6 byte hex
comm1
Object
See object definition in the table below
comm2
Object
See object definition in the table below
Comm Object Definition:
Name
Data Type
Note
link
Number
speed
Number
duplex
Number
0: No link
1: Link
0: 10 Mbit
1: 100 Mbit
0: Half
1: Full
JSON object layout:
{
"mac":
"comm1":
"link":
"speed":
"duplex":
},
"comm2":
"link":
"speed":
"duplex":
...}
}
"003011FF0201",
{
1,
1,
1
{
1,
1,
1
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
50 (104)
ipstatus.json & ipconf.json
These two object share the same data format. The object ipconf.json returns the configured IP
settings, and ipstatus.json returns the actual values that are currently used. ipconf.json can also
be used to alter the IP settings.
GET network/ipstatus.json, or GET network/ipconf.json.
Name
Data Type
Note
dhcp
Number
-
addr
String
-
subnet
String
-
gateway
String
-
dns1
String
-
dns2
String
-
hostname
String
-
domainname
String
-
{
"dhcp":
"addr":
"subnet":
"gateway":
"dns1":
"dns2":
"hostname":
"domainname":
0,
"192.168.0.55",
"255.255.255.0",
"192.168.0.1",
"10.10.55.1",
"10.10.55.2"
"<hostname>",
"hms.se"
}
To change IP settings, use network/ipconf.json. It accepts any number of arguments from the
list above. Values should be in the same format.
Example:
GET ipconf.json?dhcp=0&addr=10.11.32.2&hostname=abcc123&domainname=hms.se
ethconf.json
GET network/ethconf.json
Name
Data Type
Note
comm1
comm2
Number
Number
-
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
51 (104)
ifcounters.json
GET network/ifcounters.json?port=<port>. The argument <port> is either 1 or 2.
Name
Data Type
Note
inoctets
Number
IN: bytes
inucast
Number
IN: unicast packets
innucast
Number
IN: broadcast and multicast packets
indiscards
Number
IN: discarded packets
inerrors
inunknown
Number
Number
IN: errors
IN: unsupported protocol type
outoctets
Number
OUT: bytes
outucast
Number
OUT: unicast packets
outnucast
Number
OUT: broadcast and multicast packets
outdiscards
Number
OUT: discarded packets
outerrors
Number
OUT: errors
mediacounters.json
GET network/mediacounters.json?port=<port>. The argument <port> is either 1 or 2.
Name
Data Type
Note
align
Number
Frames received that are not an integral number of octets
in length
fcs
Number
Frames received that do not pass the FCS check
singlecoll
Number
Successfully transmitted frames which experienced exactly one collision
multicoll
Number
latecoll
Number
Successfully transmitted frames which experienced more
than one collision
Number of collisions detected later than 512 bit times into
the transmission of a packet
excesscoll
Number
Frames for which transmissions fail due to excessive
collisions
Number of times SQE test error is generated
sqetest
Number
deferredtrans
Number
Frames for which the first transmission attempt is delayed
because the medium is busy
macrecerr
Number
Frames for which reception fails due to an internal MAC
sublayer receive error
mactranserr
Number
Frames for which transmission fails due to an internal
MAC sublayer transmit error
cserr
Number
Times that the carrier sense was lost or never asserted
when attempting to transmit a frame
toolong
Number
tooshort
Number
Frames received that exceed the maximum permitted
frame size
Frames received that are shorter than the lowest permitted frame size
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
52 (104)
nwstats.json
GET network/nwstats.json.
This object lists available statistics data. The data available depends on the product.
Example output:
[]
or
[ { "identifier": "eip", "title": "EtherNet/IP Statistics" } ]
or
[
{ "identifier": "bacnet",
"title": "BACnet/IP Statistics" },
{ "identifier": "bacnetae", "title": "BACnet Alarm and Event" },
{ "identifier": "bacnetapl", "title": "BACnet APL Statistics" }
]
Get network specific statistics:
GET network/nwstats.json?get=<ID>. <ID> is an “identifier” value returned from the previous
command (“eip”, for example)
[
{ "name": "Established Class1 Connections", "value": 0 },
{ "name": "Established Class3 Connections", "value": 1 }
]
9.2.4
Services
smtp.json
GET services/smtp.json.
Password is not returned when retrieving the settings.
Name
Data Type
Note
server
String
user
String
-
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
JSON
9.2.5
53 (104)
Hex Format Explained
The metadata max and min fields and the ADI values are ABP data encoded in a hex format. If
the data type is an integer, the endianness used is determined by the data format field found in
adi/info.json.
Examples:
The value 5 encoded as a UINT16, with data format = 0 (little endian):
0500
The character array “ABC” encoded as CHAR[3] (data format is not relevant for CHAR):
414243
9.3
Example
This example shows how to create a web page that fetches Module Name and CPU load from
the module and presents it on the web page. The file, containing this code, has to be stored in
the built-in file system, and the result can be seen in a common browser.
<html>
<head>
<title>Anybus CompactCom</title>
<!-- Imported libs -->
<script type="text/javascript" src="vfs/js/jquery-1.9.1.js"></script>
<script type="text/javascript" src="vfs/js/tmpl.js"></script>
</head>
<body>
<div id="info-content"></div>
<script type="text/x-tmpl" id="tmpl-info">
<b>From info.json</b><br>
Module name:
{%=o.modulename%}<br>
CPU Load:
{%=o.cpuload%}%<br>
</script>
<script type="text/javascript">
$.getJSON( "/module/info.json", null, function(data){
$("#info-content").html( tmpl("tmpl-info", data ) );
});
</script>
</body>
</html>
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10
Anybus Module Objects
10.1
General Information
54 (104)
This chapter specifies the Anybus Module Object implementation.
Standard Objects:
•
Anybus Object (01h), p. 55
•
Diagnostic Object (02h), p. 56
•
Network Object (03h), p. 57
•
Network Configuration Object (04h), p. 58
Network Specific Objects:
•
Socket Interface Object (07h), p. 65
•
SMTP Client Object (09h), p. 82
•
Anybus File System Interface Object (0Ah), p. 87
•
Network Ethernet Object (0Ch), p. 88
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10.2
55 (104)
Anybus Object (01h)
Category
Basic
Object Description
This object assembles all common Anybus data, and is described thoroughly in the general Anybus
CompactCom 40 Software Design Guide.
Instance attribute #16 has to be set to 0002h during SETUP state to enable Transparent
Ethernet functionality.
Supported Commands
Object:
Get_Attribute
Instance:
Get_Attribute
Set_Attribute
Get_Enum_String
Object Attributes (Instance #0)
(Consult the general Anybus CompactCom 40 Software Design Guide for further information.)
Instance Attributes (Instance #1)
Basic
#
Name
Access
Type
Value
1
Module type
Get
UINT16
0403h (Standard Anybus CompactCom 40)
2... 11
-
-
-
Consult the general Anybus CompactCom 40 Software
Design Guide for further information.
12
LED colors
Get
struct of:
Value: Color:
13...
16
-
UINT8 (LED1A)
01h Green
UINT8 (LED1B)
02h Red
UINT8 (LED2A)
01h Green
UINT8 (LED2B)
02h Red
-
-
Consult the general Anybus CompactCom 40 Software
Design Guide for further information.
Extended
#
Name
Access
Type
Value
17
18
19
Virtual attributes
Black list/White list
Network time
Get/Set
Get/Set
Get
-
Consult the general Anybus CompactCom 40 Software
Design Guide for further information.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10.3
56 (104)
Diagnostic Object (02h)
Category
Basic
Object Description
This object provides a standardized way of handling host application events & diagnostics, and is thoroughly
described in the general Anybus CompactCom 40 Software Design Guide.
Supported Commands
Object:
Get_Attribute
Create
Delete
Instance:
Get_Attribute
Object Attributes (Instance #0)
#
Name
Access
Data Type
Value
1... 4
-
-
-
11
Max no. of instances
Get
UINT16
Consult the general Anybus CompactCom 40 Software Design
Guide for further information.
5+1 (Of the maximum number of instances there should always
be one instance reserved for an event of severity level ‘Major,
unrecoverable’, to force the module into the ‘EXCEPTION’state.)
12
Supported
functionality
Get
BITS32
Bit 0: “0” (Latching events are not supported)
Bit 1 - 31: reserved (shall be “0” )
Instance Attributes (Instance #1)
Extended
#
Name
Access
Data Type
Value
1
Severity
Get
UINT8
2
3
Event Code
-
Get
-
UINT8
-
Consult the general Anybus CompactCom 40 Software Design
Guide for further information.
4
5
Slot
ADI
Get
Get
UINT16
UINT16
6
7
Element
Bit
Get
Get
UINT8
UINT8
Not implemented in product
Consult the general Anybus CompactCom 40 Software Design
Guide for further information.
Attributes #2 and #4–7 can not be represented on the network and are ignored by the module.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10.4
57 (104)
Network Object (03h)
Category
Basic
Object Description
For more information regarding this object, consult the general Anybus CompactCom 40 Software Design
Guide.
Supported Commands
Object:
Get_Attribute
Instance:
Get_Attribute
Set_Attribute
Get_Enum_String
Map_ADI_Write_Area
Map_ADI_Read_Area
Map_ADI_Write_Ext_Area
Map_ADI_Read_Ext_Area
Object Attributes (Instance #0)
#
Name
Access
Data Type
Value
1
Name
Get
“Network”
2
3
4
Revision
Number of instances
Highest instance
number
Get
Get
Array of
CHAR
UINT8
UINT16
Get
UINT16
01h
02h
01h
(Consult the general Anybus CompactCom 40 Software Design Guide for further information.)
Instance Attributes (Instance #1)
Basic
#
Name
Access
Type
Value
1
Network type
Get
UINT16
00A3h
2
Network type string
Get
“Common Ethernet”
00h (LSB first)
3
Data format
Get
Array of
CHAR
ENUM
4
Parameter data
support
Get
BOOL
False
5-7
-
-
-
Consult the general Anybus CompactCom 40 Software Design
Guide for further information.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10.5
58 (104)
Network Configuration Object (04h)
Category
Extended
Object Description
This object holds network specific configuration parameters that may be set by the end user. A reset command (factory default) issued towards this object will result in all instances being set to their default values.
If the settings in this object do not match the configuration used, the Module Status LED will flash red to indicate a minor error.
The object is described in further detail in the Anybus CompactCom 40 Software Design Guide.
See also...
•
Communication Settings, p. 9
•
E-mail Client, p. 24
Supported Commands
Object:
Get_Attribute
Reset
Instance:
Get_Attribute
Set_Attribute
Get_Enum_String
Object Attributes (Instance #0)
#
Name
Access
Data Type
Value
1
Name
Get
“Network Configuration”
2
3
Revision
Number of instances
Get
Get
Array of
CHAR
UINT8
UINT16
4
Highest instance
number
Get
UINT16
0011h (17)
01h
000Fh (15)
Instance Attributes (Instance #3, IP Address)
Value is used after module reset.
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“IP address”
(Multilingual, see page 64)
2
Data type
Get
UINT8
04h (= UINT8)
3
Number of elements
Get
UINT8
04h (four elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
UINT8
Any change is valid after reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
6
Configured Value
Get
Array of
UINT8
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
59 (104)
Instance Attributes (Instance #4, Subnet Mask)
Value is used after module reset.
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“Subnet mask”
(Multilingual, see page 64)
2
Data type
Get
UINT8
04h (= UINT8)
3
Number of elements
Get
UINT8
04h (four elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
UINT8
Any change is valid after reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
6
Configured Value
Get
Array of
UINT8
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
Instance Attributes (Instance #5, Gateway Address)
Value is used after module reset.
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“Gateway”
(Multilingual, see page 64)
2
Data type
Get
UINT8
04h (= UINT8)
3
Number of elements
Get
UINT8
04h (four elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
UINT8
Any change is valid after reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
6
Configured Value
Get
Array of
UINT8
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
Instance Attributes (Instance #6, DHCP Enable)
Value is used after module reset.
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“DHCP”
(Multilingual, see page 64)
2
Data type
Get
UINT8
08h (= ENUM)
3
Number of elements
Get
UINT8
01h (one element)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
ENUM
Any change is valid after reset.
(Multilingual, see page 64)
6
Value
Get/Set
ENUM
Value
String
Meaning
00h
01h
“Disable”
“Enable”
DHCP disabled
DHCP enabled (default)
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Value
String
Meaning
00h
01h
Anybus® CompactCom™ 40 Common Ethernet Design Guide
“Disable”
“Enable”
DHCP disabled
DHCP enabled (default)
HMSI-27–269 2.1
Anybus Module Objects
60 (104)
Instance Attributes (Instance #7 Ethernet Communication Settings 1)
Changes have immediate effect.
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“Comm 1”
(Multilingual, see page 64)
2
Data type
Get
UINT8
08h (= ENUM)
3
Number of elements
Get
UINT8
01h (one element)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
ENUM
Value
String
Meaning
(Multilingual, see page 64)
00h
“Auto”
Auto negotiation (default)
01h
“10 HDX”
10Mbit, half duplex
02h
“10 FX”
10Mbit, full duplex
03h
“100HDX”
100Mbit, half duplex
04h
“100FX”
100Mbit, full duplex
6
Value
Get/Set
ENUM
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Value
String
Meaning
(Multilingual, see page 64)
00h
“Auto”
Auto negotiation (default)
01h
“10 HDX”
10Mbit, half duplex
02h
“10 FX”
10Mbit, full duplex
03h
“100HDX”
100Mbit, half duplex
04h
“100FX”
100Mbit, full duplex
Instance Attributes (Instance #8 Ethernet Communication Settings 2)
Changes have immediate effect.
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“Comm 2”
(Multilingual, see page 64)
2
Data type
Get
UINT8
08h (= ENUM)
3
Number of elements
Get
UINT8
01h (one element)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
ENUM
Value
String
Meaning
(Multilingual, see page 64)
00h
“Auto”
Auto negotiation (default)
01h
“10 HDX”
10Mbit, half duplex
02h
“10 FX”
10Mbit, full duplex
03h
“100HDX”
100Mbit, half duplex
04h
“100FX”
100Mbit, full duplex
6
Value
Get/Set
ENUM
Anybus® CompactCom™ 40 Common Ethernet Design Guide
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Value
String
Meaning
(Multilingual, see page 64)
00h
“Auto”
Auto negotiation (default)
01h
“10 HDX”
10Mbit, half duplex
02h
“10 FX”
10Mbit, full duplex
03h
“100HDX”
100Mbit, half duplex
04h
“100FX”
100Mbit, full duplex
HMSI-27–269 2.1
Anybus Module Objects
61 (104)
Instance Attributes (Instance #9, DNS1)
This instance holds the address to the primary DNS server. Changes are valid after reset..
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“DNS1”
(Multilingual, see page 64)
2
Data type
Get
UINT8
04h (= UINT8)
3
Number of elements
Get
UINT8
04h (four elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
UINT8
Any change is valid after reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
6
Configured Value
Get
Array of
UINT8
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
Instance Attributes (Instance #10, DNS2)
This instance holds the address to the secondary DNS server. Changes are valid after reset..
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“DNS2”
(Multilingual, see page 64)
2
Data type
Get
UINT8
04h (= UINT8)
3
Number of elements
Get
UINT8
04h (four elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
UINT8
Any change is valid after reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
6
Configured Value
Get
Array of
UINT8
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Valid range: 0.0.0.0 - 255.255.255.255 (Default =0.0.0.0)
Instance Attributes (Instance #11, Host name)
This instance holds the host name of the module. Changes are valid after reset..
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“Host name”
(Multilingual, see page 64)
2
Data type
Get
UINT8
07h (= CHAR)
3
Number of elements
Get
UINT8
40h (64 elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
CHAR
Any change is valid after reset.
Host name, 64 characters
6
Configured Value
Get
Array of
CHAR
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Host name, 64 characters
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
62 (104)
Instance Attributes (Instance #12, Domain name)
This instance holds the domain name. Changes are valid after reset..
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“Host name”
(Multilingual, see page 64)
2
Data type
Get
UINT8
07h (= CHAR)
3
Number of elements
Get
UINT8
30h (48 elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
CHAR
Any change is valid after reset.
Domain name, 48 characters
6
Configured Value
Get
Array of
CHAR
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Domain name, 48 characters
Instance Attributes (Instance #13, SMTP Server)
This instance holds the SMTP server address. Changes are valid after reset..
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“SMTP server”
(Multilingual, see page 64)
2
Data type
Get
UINT8
07h (= CHAR)
3
Number of elements
Get
UINT8
40h (64 elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
CHAR
Any change is valid after reset.
SMTP server address, 64 characters.
6
Configured Value
Get
Array of
CHAR
Holds the configured value, which will be written to attribute #5
after the module has been reset.
SMTP server address, 64 characters.
Instance Attributes (Instance #14, SMTP User)
This instance holds the user name for the SMTP account. Changes are valid after reset..
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“SMTP user”
(Multilingual, see page 64)
2
Data type
Get
UINT8
07h (= CHAR)
3
Number of elements
Get
UINT8
40h (64 elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
CHAR
Any change is valid after reset.
SMTP account user name, 64 characters
6
Configured Value
Get
Array of
CHAR
Holds the configured value, which will be written to attribute #5
after the module has been reset.
SMTP account user name, 64 characters
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
63 (104)
Instance Attributes (Instance #15, SMTP Password)
This instance holds the password for the SMTP account. Changes are valid after reset..
#
Name
Access
Data Type
Description
1
Name
Get
Array of
CHAR
“SMTP Pswd”
(Multilingual, see page 64)
2
Data type
Get
UINT8
07h (= CHAR)
3
Number of elements
Get
UINT8
40h (64 elements)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
Array of
CHAR
Any change is valid after reset.
SMTP account password, 64 characters
6
Configured Value
Get
Array of
CHAR
Holds the configured value, which will be written to attribute #5
after the module has been reset.
SMTP account password, 64 characters
Instance Attributes (Instance #16, MDI 1 Settings )
This instance holds the settings for MDI/MDIX 1. Changes have immediate effect.
#
Name
Access
Data Type
Description
1
Name
Get
“MDI 1”
2
Data type
Get
Array of
CHAR
UINT8
08h (= ENUM)
3
Number of elements
Get
UINT8
01h (one element)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
ENUM
5
Value
Get/Set
ENUM
Value (ENUM):
String: Meaning:
00h
“Auto” (default)
01h
“MDI”
02h
“MDIX”
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Value (ENUM):
String: Meaning:
00h
“Auto” (default)
01h
“MDI”
02h
“MDIX”
Instance Attributes (Instance #17, MDI 2 Settings )
This instance holds the settings for MDI/MDIX 2. Changes have immediate effect.
#
Name
Access
Data Type
Description
1
Name
Get
“MDI 2”
2
Data type
Get
Array of
CHAR
UINT8
08h (= ENUM)
3
Number of elements
Get
UINT8
01h (one element)
4
Descriptor
Get
UINT8
07h (read/write/shared access)
5
Value
Get/Set
ENUM
5
Value
Get/Set
ENUM
Value (ENUM):
String: Meaning:
00h
“Auto” (default)
01h
“MDI”
02h
“MDIX”
Holds the configured value, which will be written to attribute #5
after the module has been reset.
Value (ENUM):
String: Meaning:
00h
“Auto” (default)
01h
“MDI”
02h
“MDIX”
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
64 (104)
Instance Attributes (Instances #18 and #19)
These instances are reserved for future attributes.
Multilingual Strings
The instance names and enumeration strings in this object are multilingual, and are translated based on the
current language settings as follows:
Instance
English
German
Spanish
Italian
French
3
4
IP address
Subnet mask
Dirección IP
Masac.
subred
Indirizzo IP
Sottorete
Adresse IP
Sous-réseau
5
Gateway
IP-Adresse
Subnetzmaske
Gateway
Pasarela
Gateway
Passerelle
6
7
DHCP
Enable
Disable
Comm 1
DHCP
Einschalten
Ausschalten
Komm 1
DHCP
Activado
Desactivado
Comu 1
DHCP
Activé
Désactivé
Comm 1
8
Auto
10 HDX
10 FDX
100 HDX
100 FDX
Comm 2
Auto
10 HDX
10 FDX
100 HDX
100FDX
Komm 2
Auto
10 HDX
10 FDX
100 HDX
100 FDX
Comu 2
9
10
Auto
10 HDX
10 FDX
100 HDX
100 FDX
DNS1
DNS2
Auto
10 HDX
10 FDX
100 HDX
100FDX
DNS 1
DNS 2
Auto
10 HDX
10 FDX
100 HDX
100 FDX
DNS1
DNS2
DNS2
11
12
Host name
Domain name
Host name
Domain name
13
SMTP Server
SMTP Server
Nome Host
Nome
Dominio
Server SMTP
14
SMTP User
SMTP User
Utente SMTP
Nom hôte
Dom
Domaine
SMTP
serveur
SMTP utilisa.
15
SMTP Pswd
SMTP PSWD
Auto
10 HDX
10 FDX
100 HDX
100 FDX
DNS Primaria
DNS
Secundia.
Nombre Host
Nobre
Domain
Servidor
SMTP
Usuario
SMTP
Clave SMTP
DHCP
Abilitato
Disabilitato
Connessione
1
Auto
10 HDX
10 FDX
100 HDX
100 FDX
Connessione
2
Auto
10 HDX
10 FDX
100 HDX
100 FDX
DNS1
Password
SMTP
SMTP mt
passe
Anybus® CompactCom™ 40 Common Ethernet Design Guide
Auto
10 HDX
10 FDX
100 HDX
100 FDX
Comm 2
HMSI-27–269 2.1
Anybus Module Objects
10.6
65 (104)
Socket Interface Object (07h)
Category
Extended
Object Description
This object provides direct access to the TCP/IP stack socket interface, enabling custom protocols to be implemented over TCP/UDP.
Note that some of the commands used when accessing this object may require segmentation. A message will
be segmented if the amount of data sent or received is larger than the message channel can handle. For
more information, see Message Segmentation, p. 80.
The use of functionality provided by this object should only be attempted by users who are already familiar with
socket interface programming and who fully understands the concepts involved in TCP/IP programming.
Supported Commands
Object:
Get_Attribute
Create (See below)
Delete (See below)
DNS_Lookup (See below)
Instance:
Get_Attribute
Set_Attribute
Bind (See below)
Shutdown (See below)
Listen (See below)
Accept (See below)
Connect (See below)
Receive (See below)
Receive_From (See below)
Send (See below)
Send_To (See below)
P_Add_membership (See below)
IP_Drop_membership (See below)
Object Attributes (Instance #0)
#
Name
Access
Data Type
Value
1
Name
Get
“Socket interface”
2
3
Revision
Number of instances
Get
Get
Array of
CHAR
UINT8
UINT16
4
Highest instance no.
Get
UINT16
Highest created instance number
11
Max. no. of instances
Get
UINT16
0008h (8 instances):
BACnet/IP
0014h (20 instances):
All other industrial Ethernet
networks
Anybus® CompactCom™ 40 Common Ethernet Design Guide
01h
Number of opened sockets
HMSI-27–269 2.1
Anybus Module Objects
66 (104)
Instance Attributes (Sockets #1...Max. no. of instances)
Extended
#
Name
Access
Data Type
Description
1
Socket Type
Get
UINT8
Value:
Socket Type
00h
SOCK_STREAM, NONBLOCKING (TCP)
01h
SOCK_STREAM, BLOCKING (TCP)
02h
SOCK_DGRAM, NONBLOCKING (UDP)
03h
SOCK_DGRAM, BLOCKING (UDP)
2
Port
Get
UINT16
Local port that the socket is bound to
3
Host IP
Get
UINT32
Host IP address, or 0 (zero) if not connected
4
Host port
Get
UINT16
Host port number, or 0 (zero) if not connected
5
TCP State
Get
UINT8
State (TCP sockets only):
Value
State/Description
00h
01h
CLOSED Closed
LISTEN Listening for connection
02h
SYN_SENT Active, have sent and received SYN
03h
SYN_RECEIVED Have sent and received SYN
04h
05h
ESTABLISHED Established.
CLOSE_WAIT Received FIN, waiting for close
06h
FIN_WAIT_1 Have closed, sent FIN
07h
CLOSING Closed exchanged FIN; await FIN ACK
08h
LAST_ACK Have FIN and close; await FIN ACK
09h
FIN_WAIT_2 Have closed, FIN is acknowledged
Ah
TIME_WAIT Quiet wait after close
6
TCP RX bytes
Get
UINT16
Number of bytes in RX buffers (TCP sockets only)
7
TCP TX bytes
Get
UINT16
Number of bytes in TX buffers (TCP sockets only)
8
Reuse address
Get/Set
BOOL
Socket can reuse local address
Value
Meaning
1
Enabled
0
Disabled (default)
9
Keep alive
Get/Set
BOOL
Protocol probes idle connection (TCP sockets only).
If the Keep alive attribute is set, the connection will be probed
for the first time after it has been idle for 120 minutes. If a probe
attempt fails, the connection will continue to be probed at intervals of 75s. The connection is terminated after 8 failed probe
attempts.
Value
1
0
10
IP Multicast TTL
Get/Set
UINT8
11
IP Multicast Loop
Get/Set
BOOL
IP Multicast TTL value (UDP sockets only).
Default = 1.
IP multicast loop back (UDP sockets only)
Must belong to group in order to get the loop backed message
Value
1
0
12
(reserved)
13
TCP No Delay
Get/Set
BOOL
TCP Connect
Timeout
Get/Set
UINT16
Anybus® CompactCom™ 40 Common Ethernet Design Guide
Meaning
Enabled (default)
Disabled
Don’t delay send to coalesce packets (TCP).
Value
1
0
14
Meaning
Enabled
Disabled (default)
Meaning
Delay (default)
Don’t delay (turn off Nagle’s algorithm on socket)
TCP Connect timeout in seconds (default = 75s)
HMSI-27–269 2.1
Anybus Module Objects
67 (104)
Command Details: Create
Category
Extended
Details
Command Code
03h
Valid for:
Object Instance
Description
This command creates a socket.
This command is only allowed in WAIT_PROCESS, IDLE and PROCESS_ACTIVE states.
•
•
Command Details
Field
Contents
CmdExt[0]
(reserved, set to zero)
CmdExt[1]
Value:
00h
01h
02h
03h
Socket Type:
SOCK_STREAM, NON-BLOCKING (TCP)
SOCK_STREAM, BLOCKING (TCP)
SOCK_DGRAM, NON-BLOCKING (UDP)
SOCK_DGRAM, BLOCKING (UDP)
Response Details
Field
Data[0]
Contents
Instance number (low)
Data[1]
Instance number (high)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
Comments
Instance number of the created socket.
HMSI-27–269 2.1
Anybus Module Objects
68 (104)
Command Details: Delete
Category
Extended
Details
Command Code
04h
Valid for:
Object Instance
Description
This command deletes a previously created socket and closes the connection (if connected).
•
If the socket is of TCP-type and a connection is established, the connection is terminated with the RSTflag.
•
To gracefully terminate a TCP-connection, it is recommended to use the ‘Shutdown’-command (see below) before deleting the socket, causing the connection to be closed with the FIN-flag instead.
•
Command Details
•
Field
Contents
Comments
CmdExt[0]
Instance number to delete (low)
Instance number of socket that shall be deleted.
CmdExt[1]
Instance number to delete (high)
Response Details
(no data)
Command Details: Bind
Category
Extended
Details
Command Code
10h
Valid for:
Instance
Description
This command binds a socket to a local port.
•
•
Command Details
Field
Contents
Comments
CmdExt[0]
Requested port number (low)
Set to 0 (zero) to request binding to any free port.
CmdExt[1]
Requested port number (high)
Response Details
Field
Contents
Comments
CmdExt[0]
Bound port number (low)
Actual port that the socket was bound to.
CmdExt[1]
Bound port number (high)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
69 (104)
Command Details: Shutdown
Category
Extended
Details
Command Code
11h
Valid for:
Instance
Description
This command closes a TCP-connection using the FIN-flag. Note that the response does not indicate if the
connection actually shut down, which means that this command cannot be used to poll non-blocking sockets,
nor will it block for blocking sockets.
•
•
Command Details
Field
Contents
CmdExt[0]
(reserved, set to zero)
CmdExt[1]
Value:
00h
01h
02h
Mode:
Shutdown receive channel
Shutdown send channel
Shutdown both receive- and send channel
Response Details
(no data)
The recommended sequence to gracefully shut down a TCP connection is described below.
Application initiates shutdown:
1.
Send shutdown with CmdExt[1] set to 01h. This will send FIN-flag to host shutting down the send channel, note that the receive channel will still be operational.
2.
Receive data on socket until error message Object specific error (EPIPE (13)) is received, indicating that
the host closed the receive channel. If host does not close the receive channel use a timeout and progress to step 3.
3.
Delete the socket instance. If step 2 timed out, RST-flag will be sent to terminate the socket.
Application initiates shutdown:
1.
Receive data on socket, if zero bytes received it indicates that the host closed the receive channel of the
socket.
2.
Try to send any unsent data to the host.
3.
Send shutdown with CmdExt[1] set to 01h. This will send FIN-flag to host shutting down the receive
channel.
4.
Delete the socket instance.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
70 (104)
Command Details: Listen
Category
Extended
Details
Command Code
12h
Valid for:
Instance
Description
This command puts a TCP socket in listening state.
•
•
Command Details
Field
Contents
CmdExt[0]
(reserved, set to zero)
CmdExt[1]
(reserved)
Response Details
(no data)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
71 (104)
Command Details: Accept
Category
Extended
Details
Command Code
13h
Valid for:
Instance
Description
This command accepts incoming connections on a listening TCP socket. A new socket instance is created for
each accepted connection. The new socket is connected with the host and the response returns its instance
number.
NONBLOCKING mode
This command must be issued repeatedly (polled) for incoming connections. If no incoming
connection request exists, the module will respond with error code 0006h (EWOULDBLOCK).
BLOCKING mode
This command will block until a connection request has been detected.
This command will only be accepted if there is a free instance to use for accepted connections. For blocking
connections, this command will reserve an instance.
•
Command Details
(no data)
•
Response Details
Field
Data[0]
Contents
Instance number for the connected socket (low byte)
Data[1]
Instance number for the connected socket (high byte)
Data[2]
Host IP address byte 4
Data[3]
Host IP address byte 3
Data[4]
Host IP address byte 2
Data[5]
Host IP address byte 1
Data[6]
Host port number (low byte)
Data[7]
Host port number (high byte)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
72 (104)
Command Details: Connect
Category
Extended
Details
Command Code
14h
Valid for:
Instance
Description
For SOCK-DGRAM-sockets, this command specifies the peer with which the socket is to be associated (to
which datagrams are sent and the only address from which datagrams are received).
For SOCK_STREAM-sockets, this command attempts to establish a connection to a host.
SOCK_STREAM-sockets may connect successfully only once, while SOCK_DGRAM-sockets may use this
service multiple times to change their association. SOCK-DGRAM-sockets may dissolve their association by
connecting to IP address 0.0.0.0, port 0 (zero).
•
NON-BLOCKING mode:
This command must be issued repeatedly (polled) until a connection is connected, rejected or
timed out. The first connect-attempt will be accepted, thereafter the command will return error
code 22 (EINPROGRESS) on poll requests while attempting to connect.
BLOCKING mode:
This command will block until a connection has been established or the connection request is
cancelled due to a timeout or a connection error.
Command Details
Field
Contents
CmdExt[0]
(reserved, set to zero)
CmdExt[1]
•
Data[0]
Host IP address byte 4
Data[1]
Host IP address byte 3
Data[2]
Host IP address byte 2
Data[3]
Host IP address byte 1
Data[4]
Host port number (low byte)
Data[5]
Host port number (high byte)
Response Details
(no data)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
73 (104)
Command Details: Receive
Category
Extended
Details
Command Code
15h
Valid for:
Instance
Description
This command receives data from a connected socket. Message segmentation may be used to receive up to
1472 bytes (for more information, see Message Segmentation, p. 80).
For SOCK-DGRAM-sockets, the module will return the requested amount of data from the next received datagram. If the datagram is smaller than requested, the entire datagram will be returned in the response message. If the datagram is larger than requested, the excess bytes will be discarded.
For SOCK_STREAM-sockets, the module will return the requested number of bytes from the received data
stream. If the actual data size is less than requested, all available data will be returned.
NON-BLOCKING mode:
If no data is available on the socket, the error code 0006h (EWOULDBLOCK) will be returned.
BLOCKING mode:
The module will not issue a response until the operation has finished.
If the module responds successfully with 0 (zero) bytes of data, it means that the host has closed the connection. The send channel may however still be valid and must be closed using Shutdown and/or Delete.
•
•
Command Details
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
CmdExt[1]
Segmentation Control bits
For more information, see Message Segmentation, p. 80
Data[0]
Receive data size (low)
Only used in the first segment
Data[1]
Receive data size (high)
Response Details
The data in the response may be segmented (For more information, see Message Segmentation, p. 80).
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
CmdExt[1]
Segmentation Control bits
For more information, see Message Segmentation, p. 80
Data[0...n]
Received data
-
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
74 (104)
Command Details: Receive_From
Category
Extended
Details
Command Code
16h
Valid for:
Instance
Description
This command receives data from an unconnected SOCK_DGRAM-socket. Message segmentation may be
used to receive up to 1472 bytes (For more information, see Message Segmentation, p. 80).
The module will return the requested amount of data from the next received datagram. If the datagram is
smaller than requested, the entire datagram will be returned in the response message. If the datagram is larger than requested, the excess bytes will be discarded.
The response message contains the IP address and port number of the sender.
•
•
NON-BLOCKING mode:
If no data is available on the socket, the error code 0006h (EWOULDBLOCK) will be returned.
BLOCKING mode:
The module will not issue a response until the operation has finished.
Command Details
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
CmdExt[1]
Segmentation Control bits
For more information, see Message Segmentation, p. 80
Data[0]
Receive data size (low byte)
Only used in the first segment
Data[1]
Receive data size (high byte)
Response Details
The data in the response may be segmented (For more information, see Message Segmentation, p. 80).
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
CmdExt[1]
Segmentation Control bits
For more information, see Message Segmentation, p. 80
Data[0]
Host IP address byte 4
Data[1]
Host IP address byte 3
The host address/port information is only included in the
first segment. All data thereafter will start at Data[0]
Data[2]
Host IP address byte 2
Data[3]
Host IP address byte 1
Data[4]
Host port number (low byte)
Data[5]
Host port number (high byte)
Data[6...n]
Received data
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
75 (104)
Command Details: Send
Category
Extended
Details
Command Code
17h
Valid for:
Instance
Description
This command sends data on a connected socket. Message segmentation may be used to send up to 1472
bytes (For more information, see Message Segmentation, p. 80).
•
NON-BLOCKING mode:
If there isn’t enough buffer space available in the send buffers, the module will respond with
error code 0006h (EWOULDBLOCK)
BLOCKING mode:
If there isn’t enough buffer space available in the send buffers, the module will block until
there is.
Command Details
To allow larger amount of data (i.e. >255 bytes) to be sent, the command data may be segmented (For
more information, see Message Segmentation, p. 80).
•
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
CmdExt[1]
Segmentation Control
(For more information, see Message Segmentation, p.
80)
Data[0...n]
Data to send
-
Response Details
Field
Contents
Comments
CmdExt[0]
(reserved)
(ignore)
Data[0]
Number of sent bytes (low)
Only valid in the last segment
Data[1]
Number of sent bytes (high)
CmdExt[1]
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
76 (104)
Command Details: Send_To
Category
Extended
Details
Command Code
18h
Valid for:
Instance
Description
This command sends data to a specified host on an unconnected SOCK-DGRAM-socket. Message segmentation may be used to send up to 1472 bytes (For more information, see appendix For more information, see
Message Segmentation, p. 80).
•
Command Details
To allow larger amount of data (i.e. >255 bytes) to be sent, the command data may be segmented (For
more information, see Message Segmentation, p. 80).
•
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
CmdExt[1]
Segmentation Control
For more information, see Message Segmentation, p. 80
Data[0]
Host IP address byte 4
Data[1]
Host IP address byte 3
The host address/port information shall only be included
in the first segment. All data thereafter must start at Data
[0]
Data[2]
Host IP address byte 2
Data[3]
Host IP address byte 1
Data[4]
Host port number (low byte)
Data[5]
Host port number (high byte)
Data[6...n]
Data to send
Response Details
Field
Contents
Comments
CmdExt[0]
(reserved)
(ignore)
Data[0]
Number of sent bytes (low byte)
Only valid in the last segment
Data[1]
Number of sent bytes (high byte)
CmdExt[1]
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
77 (104)
Command Details: IP_Add_Membership
Category
Extended
Details
Command Code
19h
Valid for:
Instance
Description
This command assigns the socket an IP multicast group membership. The module always joins the “All hosts
group” automatically, however this command may be used to specify up to 20 additional memberships.
•
Command Details
Field
Contents
CmdExt[0]
(reserved, set to zero)
CmdExt[1]
•
Data[0]
Group IP address byte 4
Data[1]
Group IP address byte 3
Data[2]
Group IP address byte 2
Data[3]
Group IP address byte 1
Response Details
(no data)
Command Details: IP_Drop_Membership
Category
Extended
Details
Command Code
1Ah
Valid for:
Instance
Description
This command removes the socket from an IP multicast group membership.
•
Command Details
Field
Contents
CmdExt[0]
(reserved, set to zero)
CmdExt[1]
•
Data[0]
Group IP address byte 4
Data[1]
Group IP address byte 3
Data[2]
Group IP address byte 2
Data[3]
Group IP address byte 1
Response Details
(no data)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
78 (104)
Command Details: DNS_Lookup
Category
Extended
Details
Command Code
1Bh
Valid for:
Object
Description
This command resolves the given host name and returns the IP address.
•
Command Details
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
Host name
Host name to resolve
CmdExt[1]
Data[0... N]
•
Response Details (Success)
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
Data[0]
IP address byte 4
IP address of the specified host
Data[1]
IP address byte 3
Data[2]
IP address byte 2
Data[3]
IP address byte 1
CmdExt[1]
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
79 (104)
Socket Interface Error Codes (Object Specific)
The following object-specific error codes may be returned by the module when using the socket interface
object.
Error Code
Name
Meaning
1
2
3
ENOBUFS
ETIMEDOUT
EISCONN
No internal buffers available
A timeout event occurred
Socket already connected
4
EOPNOTSUPP
Service not supported
5
ECONNABORTED
EWOULDBLOCK
Connection was aborted
Socket cannot block because unblocking socket type
8
9
10
ECONNREFUSED
ECONNRESET
ENOTCONN
EALREADY
Connection refused
Connection reset
Socket is not connected
Socket is already in requested mode
11
12
EINVAL
EMSGSIZE
Invalid service data
Invalid message size
13
EPIPE
Error in pipe
14
EDESTADDRREQ
Destination address required
15
ESHUTDOWN
Socket has already been shutdown
16
(reserved)
-
17
18
EHAVEOOB
ENOMEM
Out of band data available
No internal memory available
19
20
EADDRNOTAVAIL
EADDRINUSE
Address is not available
Address already in use
21
(reserved)
-
22
EINPROGRESS
Service already in progress
28
ETOOMANYREFS
Too many references
101
Command aborted
If a command is blocking on a socket, and that socket is closed using the Delete command, this error code will be returned to the blocking command.
6
7
102
DNS name error
Failed to resolve the host name (name error response from DNS server.
103
DNS timeout
Timeout when performing a DNS lookup.
104
DNS command failed
Other DNS error.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
80 (104)
Message Segmentation
General
Category: Extended
The maximum message size supported by the Anybus CompactCom 40 is normally 1524 bytes. In some applications a maximum message size of 255 bytes is supported, e.g. if an Anybus CompactCom 40 is to replace an Anybus CompactCom 30 without any changes to the application. The maximum socket message
size is 1472. To ensure support for socket interface messages larger than 255 bytes a segmentation protocol
is used.
The segmentation bits have to be set for all socket interface messages, in the commands where segmentation
can be used, whether the messages have to be segmented or not.
The segmentation protocol is implemented in the message layer and must not be confused with the fragmentation protocol used on the serial host interface. Consult the general Anybus CompactCom 40 Software
Design Guide for further information.
The module supports 1 (one) segmented message per instance
Command Segmentation
When a command message is segmented, the command initiator sends the same command header multiple
times. For each message, the data field is exchanged with the next data segment.
Command segmentation is used for the following commands (Socket Interface Object specific commands):
•
Send
•
Send To
When issuing a segmented command, the following rules apply:
•
When issuing the first segment, FS must be set.
•
When issuing subsequent segments, both FS and LS must be cleared.
•
When issuing the last segment, the LF-bit must be set.
•
For single segment commands (i.e. size less or equal to the message channel size), both FS and LS
must be set.
•
The last response message contains the actual result of the operation.
•
The command initiator may at any time abort the operation by issuing a message with AB set.
•
If a segmentation error is detected during transmission, an error message is returned, and the current
segmentation message is discarded. Note however that this only applies to the current segment; previously transmitted segments are still valid.
Segmentation Control Bits (Command)
Bit
Contents
Meaning
0
FS
Set if the current segment is the first segment
1
LS
Set if the current segment is the last segment
2
AB
Set if the segmentation shall be aborted
3...7
(reserved)
Set to 0 (zero)
Segmentation Control Bits (Response)
Bit
Contents
Meaning
0... 7
(reserved)
Ignore
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
81 (104)
Response Segmentation
When a response is segmented, the command initiator requests the next segment by sending the same command multiple times. For each response, the data field is exchanged with the next data segment.
Response segmentation is used for responses to the following commands (Socket Interface Object specific
commands):
•
Receive
•
Receive From
When receiving a segmented response, the following rules apply:
•
In the first segment, FS is set.
•
In all subsequent segment, both FS and LS are cleared.
•
In the last segment, LS is set.
•
For single segment responses (i.e. size less or equal to the message channel size), both FS and LS are
set.
•
The command initiator may at any time abort the operation by issuing a message with AB set.
Segmentation Control bits (Command)
Bit
Contents
Meaning
0
1
2
(reserved)
(set to zero)
AB
Set if the segmentation shall be aborted
3...7
(reserved)
Set to 0 (zero)
Segmentation Control bits (Response)
Bit
Contents
Meaning
0
FS
Set if the current segment is the first segment
1
LS
Set if the current segment is the last segment
2...7
(reserved)
Set to 0 (zero)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10.7
82 (104)
SMTP Client Object (09h)
Category
Extended
Object Description
This object groups functions related to the SMTP client.
Supported Commands
Object:
Get_Attribute
Create
Delete
Send e-mail from file (see below)
Instance:
Get_Attribute
Set_Attribute
Send e-mail (see below)
Object Attributes (Instance #0)
#
Name
Access
Data Type
Value
1
Name
Get
“SMTP Client”
2
3
4
Revision
Number of instances
Highest instance no.
Get
Get
Get
Array of
CHAR
UINT8
UINT16
UINT16
11
12
Max. no. of instances
Success count
Get
Get
UINT16
UINT16
0006h
Reflects the no. of successfully sent messages
13
Error count
Get
UINT16
Reflects the no. of messages that could not be delivered
01h
-
Instance Attributes (Instance #1)
Instances are created dynamically by the application.
#
Name
Access
Data Type
Description
1
From
Get/Set
e.g. “[email protected]”
2
To
Get/Set
3
Subject
Get/Set
4
Message
Get/Set
Array of
CHAR
Array of
CHAR
Array of
CHAR
Array of
CHAR
Anybus® CompactCom™ 40 Common Ethernet Design Guide
e.g.“ [email protected]”
e.g. “Important notice”
e.g.“Shut down the system”
HMSI-27–269 2.1
Anybus Module Objects
83 (104)
Command Details: Create
Category
Extended
Details
Command Code
03h
Valid for:
Object
Description
This command creates an e-mail instance.
•
Command Details
Field
Contents
Comments
CmdExt[0]
(reserved)
(set to zero)
CmdExt[1]
•
Response Details
Field
Contents
Comments
CmdExt[0]
(reserved)
(ignore)
Instance number
low byte
CmdExt[1]
Data[0]
Data[1]
Anybus® CompactCom™ 40 Common Ethernet Design Guide
high byte
HMSI-27–269 2.1
Anybus Module Objects
84 (104)
Command Details: Delete
Category
Extended
Details
Command Code
04h
Valid for:
Object
Description
This command deletes an e-mail instance.
•
Command Details
Field
Contents
Comments
CmdExt[0]
E-mail instance number
low byte
CmdExt[1]
•
high byte
Response Details
(no data)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
85 (104)
Command Details: Send E-mail From File
Category
Extended
Details
Command Code
11h
Valid for:
Object
Description
This command sends an e-mail based on a file in the file system.
The file must be a plain ASCII-file in the following format:
[To]
recipient
[From]
sender
[Subject]
email subject
Se [Headers]
extra headers, optional
[Message]
actual email message
•
Command Details
Field
Contents
CmdExt[0]
(reserved, set to zero)
CmdExt[1]
Data[0... n]
•
Path + filename of message file
Response Details
(no data)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
86 (104)
Command Details: Send E-mail
Category
Extended
Details
Command Code
10h
Valid for:
Instance
Description
This command sends the specified e-mail instance.
•
Command Details
(no data)
•
Response Details
(no data)
Object Specific Error Codes
Error Codes
Meaning
1
2
SMTP server not found
SMTP server not ready
3
4
5
Authentication error
SMTP socket error
6
SSI scan error
Unable to interpret e-mail file
255
Unspecified SMTP error
(other)
(reserved)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10.8
87 (104)
Anybus File System Interface Object (0Ah)
Category
Extended
Object Description
This object provides an interface to the built-in file system. Each instance represents a handle to a file stream
and contains services for file system operations.
This provides the host application with access to the built-in file system of the module, e.g. when application
specific web pages are to be installed.
Instances are created and deleted dynamically during runtime.
This object is thoroughly described in Anybus CompactCom 40 Software Design Guide.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Anybus Module Objects
10.9
88 (104)
Network Ethernet Object (0Ch)
Category
Extended
Object Description
This object provides Ethernet-specific information to the application.
Supported Commands
Object:
Get_Attribute
Instance:
Get_Attribute
Object Attributes (Instance #0)
#
Name
Access
Data Type
Value
1
Name
Get
“Network Ethernet”
2
3
4
Revision
Number of instances
Highest instance no.
Get
Get
Get
Array of
CHAR
UINT8
UINT16
UINT16
01h
-
Instance Attributes (Instance #1)
#
Name
Access
Data Type
Description
1
MAC Address
Get
Array of
UINT8
Current MAC address.
See also “Ethernet Host Object (F9h)”
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Host Application Objects
11
Host Application Objects
11.1
General Infomration
89 (104)
This chapter specifies the host application object implementation in the module. The objects
listed here may optionally be implemented within the host application firmware to expand the
implementation.
Standard Objects:
•
Application Object (see Anybus CompactCom 40 Software Design Guide)
•
Application Data Object (see Anybus CompactCom 40 Software Design Guide)
Network Specific Objects
•
Application File System Interface Object (EAh), p. 90
•
Ethernet Host Object (F9h), p. 91
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Host Application Objects
11.2
90 (104)
Application File System Interface Object (EAh)
Category
Extended
Object Description
This object provides an interface to the built-in file system. Each instance represents a handle to a file stream
and contains services for file system operations. This allows the user to download software through the FTP
server to the application. The application decides the available memory space.
This object is thoroughly described in Anybus CompactCom 40 Software Design Guide.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Host Application Objects
11.3
91 (104)
Ethernet Host Object (F9h)
Object Description
This object implements Ethernet features in the host application.
Supported Commands
Object:
Get_Attribute
Instance:
Get_Attribute
Set_Attribute
Object Attributes (Instance #0)
#
Name
Access
Data Type
Value
1
Name
Get
Array of CHAR
“Ethernet”
2
3
4
Revision
Number of instances
Highest instance no.
Get
Get
Get
UINT8
UINT16
UINT16
02h
0001h
0001h
Instance Attributes (Instance #1)
•
If an attribute is not implemented, the default value will be used.
•
The module is preprogrammed with a valid MAC address. To use that address, do not implement attribute #1.
•
Do not implement attributes #9 and #10, only used for PROFINET devices, if the module shall use the
preprogrammed MAC addresses.
•
If new MAC addresses are assigned to a PROFINET device, these addresses (in attributes #1, #9, and
#10) have to be consecutive, e.g. (xx:yy:zz:aa:bb:01), (xx:yy:zz:aa:bb:02), and (xx:yy:zz:aa:bb:03) with
the first five octets not changing.
Data Type
MAC address
Access
Get
2
Enable HICP
Get
BOOL
True
(Enabled)
3
Enable Web
Server
Get
BOOL
True
(Enabled)
4
(reserved)
5
Enable Web ADI
access
Get
BOOL
True
(Enabled)
Enable/Disable Web ADI access
(Not used if Transparent Ethernet is enabled.)
6
Enable FTP
server
Get
BOOL
True
(Enabled)
Enable/Disable FTP server
(Not used if Transparent Ethernet is enabled.)
7
Enable admin
mode
Get
BOOL
False
(Disabled)
Enable/Disable FTP admin mode
(Not used if Transparent Ethernet is enabled.)
8
Network Status
Set
UINT16
-
See below.
#
Name
1
Array of
UINT8
Default
Value
-
Comment
6 byte physical address value; overrides the preprogrammed Mac address. Note that the new Mac address
value must be obtained from the IEEE.
Do not implement this attribute if the preprogrammed Mac
address is to be used.
Enable/Disable HICP
Enable/Disable Web Server
(Not used if Transparent Ethernet is enabled.)
Reserved for Anybus CompactCom 30 applications.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Host Application Objects
92 (104)
#
Name
Access
Data Type
Default
Value
-
9
Port 1 MAC
address
Get
Array of
UINT8
10
Port 2 MAC
address
Get
Array of
UINT8
-
11
Enable ACD
Get
BOOL
True
(Enabled)
12
Port 1 State
Get
ENUM
0 (Enabled)
Comment
Note: This attribute is only valid for PROFINET devices.
6 byte MAC address for port 1 (mandatory for the LLDP
protocol).
This setting overrides any Port MAC address in the host
PROFINET IO Object.
Do not implement this attribute if the preprogrammed Mac
address is to be used.
Note: This attribute is only valid for PROFINET devices.
6 byte MAC address for port 2 (mandatory for the LLDP
protocol).
This setting overrides any Port MAC address in the host
PROFINET IO Object.
Do not implement this attribute if the preprogrammed Mac
address is to be used.
Enable/Disable ACD protocol.
If ACD functionality is disabled using this attribute, the
ACD attributes in the CIP TCP/IP object (F5h) are not
available.
The state of Ethernet port 1.
•
This attribute is not read by EtherCAT devices, where
Port 1 is always enabled.
•
This attribute is not used by PROFINET
00h:
01h:
13
Port 2 State
Get
ENUM
0 (Enabled)
Enabled
Disabled.
The port is treated as existing. References to
the port can exist, e.g. in network protocol or
on website.
The state of Ethernet port 2.
•
This attribute is not read by EtherCAT devices, where
Port 2 is always enabled.
•
This attribute is not used by PROFINET
00h:
01h:
02h:
14
(reserved)
15
Enable reset
from HICP
IP configuration
16
Enabled
Disabled.
The port is treated as existing. References to
the port can exist, e.g. in network protocol or
on website.
Inactive.
The attribute is set to this value for a device
that only has one physical port. All two-port
functionality is disabled. No references can
be made to this port.
Note: This functionality is available for Ethernet/IP and Modbus-TCP devices.
Get
BOOL
0 = False
Enables the option to reset the module from HICP.
Set
Struct of:
UINT32 (IP
address)
UINT32
(Subnet
mask)
UINT32
(Gateway)
N/A
Whenever the configuration is assigned or changed, the
Anybus CompactCom module will update this attribute.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Host Application Objects
93 (104)
#
Name
Access
Data Type
17
IP address byte
0–2
Get
Array of
UINT8[3]
18
Ethernet PHY
Configuration
Get
Array of
BITS16
Default
Value
[0] = 192
[1] = 168
[2] = 0
0x0000 for
each port
Comment
First three bytes in IP address. Used in standalone shift
register mode if the configuration switch value is set to 1245. In that case the IP address will be set to:
Y[0].Y[1].Y[2].X
Where Y0-2 is configured by this attribute and the last
byte X by the configuration switch.
Ethernet PHY configuration bit field. The length of the array shall equal the number of Ethernet ports of the product. Each element represents the configuration of one
Ethernet port (element #0 maps to Ethernet port #1, element #1 maps to Ethernet port #2 and so on).
Note: Only valid for EtherNet/IP and Modbus-TCP
devices.
Bit 0:
Auto negotiation fallback duplex
0 = Half duplex
1 = Full duplex
Bit 1–15: Reserved
Note: This attribute is only valid for PROFINET devices.
Sets the SNMP read-only community string. Max length is
32.
Note: This attribute is only valid for PROFINET devices.
Sets the SNMP read-write community string. Max length
is 32.
Note: This attribute is currently only valid for Ethernet/IP
devices.
See below (DHCP Option 61, Client Identifier)
20
SNMP read-only
community string
Get
Array of
CHAR
“public”
21
SNMP read-write
community string
Get
Array of
CHAR
“private”
22
DHCP Option 61
source
Get
ENUM
0 (Disabled)
23
DHCP Option 61
generic string
Get
Array of
UINT8
N/A
Note: This attribute is currently only valid for Ethernet/IP
devices.
See below (DHCP Option 61, Client Identifier)
24
Enable DHCP
Client
Get
BOOL
1 = True
Note: This attribute is currently only valid for Ethernet/IP
devices.
Enable/disable DHCP Client functionality
0:
DHCP Client functionality is disabled
1:
DHCP Client functionality is enabled
Network Status
This attribute holds a bit field which indicates the overall network status as follows:
Bit
Contents
Description
0
Link
1
IP established
2
(reserved)
Current global link status
1= Link sensed
0= No link
1 = IP address established
0 = IP address not established
(mask off and ignore)
3
Link port 1
Current link status for port 1
1 = Link sensed
0 = No link
EtherCAT only: This link status indicates whether
the Anybus CompactCom is able to communicat
using Ethernet over EtherCAT (EoE) or not. That
is, it indicates the status of the logical EoE port
link and is not related to the link status on the
physical EtherCAT ports.
4
Link port 2
Not used for EtherCAT
5... 15
(reserved)
Current link status for port 2
1 = Link sensed
0 = No link
(mask off and ignore)
Anybus® CompactCom™ 40 Common Ethernet Design Guide
Comment
HMSI-27–269 2.1
Host Application Objects
94 (104)
DHCP Option 61 (Client Identifier)
The DHCP Option 61 (Client Identifier) allow the end-user to specify a unique identifier, which has to be
unique within the DHCP domain.
Attribute #22 (DHCP Option 61 source) is used to configure the source of the Client Identifier. The table below
shows the definition for the Client identifier for different sources and their description.
Value
Source
Description
0
Disable
The DHCP Option 61 is disabled. This is the default value if the attribute is not implemented in the application.
1
2
MACID
Host Name
The MACID will be used as the Client Identifier
The configured Host Name will be used as the Client Identifier
3
Generic String
Attribute #23 will be used as the Client Identifier
Attribute #23 (DHCP Option 61 generic string) is used to set the Client Identifer when Attribute #22 has been
set to 3 (Generic String). Attribute #23 contains the Type field and Client Identifier and shall comply with the
definitions in RFC 2132. The allowed max length that can be passed to the module via attribute #23 is 64
octets.
Example:
If Attribute #22 has been set to 3 (Generic String) and Attribute #23 contains 0x01, 0x00, 0x30, 0x11, 0x33,
0x44, 0x55, the Client Identifier will be represented as an Ethernet Media Type with MACID
00:30:11:33:44:55.
Example 2:
If Attribute #22 has been set to 2 (Host Name) Attribute #23 will be ignored and the Client Identifier will be the
same as the configured Host Name.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix A: Categorization of Functionality
A
95 (104)
Categorization of Functionality
The objects, including attributes and services, of the Anybus CompactCom and the application
are divided into two categories: basic and extended.
A.1
Basic
This category includes objects, attributes and services that are mandatory to implement or to
use. They will be enough for starting up the Anybus CompactCom and sending/receiving data
with the chosen network protocol. The basic functions of the industrial network are used.
Additional objects etc, that will make it possible to certify the product also belong to this
category.
A.2
Extended
Use of the objects in this category extends the functionality of the application. Access is given
to the more specific characteristics of the industrial network, not only the basic moving of data
to and from the network. Extra value is given to the application.
Some of the functionality offered may be specialized and/or seldom used. As most of the available network functionality is enabled and accessible, access to the specification of the industrial
network may be required.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix B: Implementation Details
96 (104)
B
Implementation Details
B.1
SUP-Bit Definition
Not used.
B.2
Anybus State Machine
The table below describes how the Anybus Statemachine relates to the EtherNet/IP network
B.3
Anybus State
Implementation
WAIT_PROCESS
ERROR
The module stays in this state as long as it is
running. From here it can only change to ERROR or EXCEPTION.
Duplicate IP address detected
PROCESS_ACTIVE
-
IDLE
EXCEPTION
Unexpected error, e.g. watchdog timeout etc.
Comment
-
The module shall never enter any of
these states.
MS LED turns red (to indicate a major
fault)
NS LED is off
Application Watchdog Timeout Handling
Upon detection of an application watchdog timeout, the module will cease network participation
and shift to state ‘EXCEPTION’. No other network specific actions are performed.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
C
Secure HICP (Secure Host IP Configuration
Protocol)
C.1
General
The Anybus CompactCom 40 Common Ethernet supports the Secure HICP protocol used by
the Anybus IPconfig utility for changing settings, e.g. IP address, Subnet mask, and enable/disable DHCP. Anybus IPconfig can be downloaded free of charge from the HMS website, www.
anybus.com. This utility may be used to access the network settings of any Anybus product
connected to the network via UDP port 3250.
The protocol offers secure authentication and the ability to restart/reboot the device(s).
C.2
Operation
When the application is started, the network is automatically scanned for Anybus products. The
network can be rescanned at any time by clicking Scan.
To alter the network settings of a module, double-click on its entry in the list. A window will appear, containing the settings for the module.
Fig. 8
Validate the new settings by clicking Set, or click Cancel to cancel all changes. Optionally, the
configuration can be protected from unauthorized access by a password. To enter a password,
check the Change password checkbox and enter the password in the New password text
field.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix D: Technical Specification
98 (104)
D
Technical Specification
D.1
Front View
Please note that the LED indications may change, once specific network communication software has been downloaded to the module. When the network communication software has
been downloaded, the Network Status LED (labelled L1) and the Module Status LED (labelled
L2) must in many cases be relabelled to conform to specific network certification requirements.
Relabelling can be done by the customer or with interchangeable network specific fronts provided by HMS. Contact HMS for more information.
D.1.1
Front View (Ethernet Connectors)
#
Item
Connector
1
L1 (Network Status LED)
2
L2 (Module Status LED)
Ethernet,
RJ45
3
Link/Activity LED (port 1)
4
Link/Activity LED (port 2)
3
4
1
2
Test sequences are performed on the Network and Module Status LEDs during startup.
D.1.2
D.1.3
D.1.4
D.1.5
Network Status LED
LED State
Description
Off
No power
Green
IP address assigned
Green, flashing
No IP address has been assigned
Red
IP address conflict detected, ERROR
Module Status LED
LED State
Description
Off
Not in EXCEPTION or WAIT_PROCESS state
Green
In WAIT_PROCESS state
Red
Major fault (EXCEPTION state)
LINK/Activity LED 3/4
LED State
Description
Off
No link, no activity
Green
Link (100 Mbit/s) established
Green, flickering
Activity (100 Mbit/s)
Yellow
Link (10 Mbit/s) established
Yellow, flickering
Activity (10 Mbit/s)
Fatal Error
If both the Network Status LED and the Module Status LED are red, a fatal error has occurred.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix D: Technical Specification
D.1.6
99 (104)
Ethernet Interface
The Ethernet interface 10/100Mbit, full or half duplex operation.
D.2
Functional Earth (FE) Requirements
In order to ensure proper EMC behavior, the module must be properly connected to functional
earth via the FE pad/FE mechanism described in the Anybus CompactCom 40 Hardware
Design Guide.
HMS Industrial Networks AB does not guarantee proper EMC behavior unless these PE requirements are fulfilled.
D.3
Power Supply
D.3.1
Supply Voltage
The Anybus CompactCom 40 Common Ethernet requires a regulated 3.3 V power source as
specified in the general Anybus CompactCom 40 Hardware Design Guide.
D.3.2
Power Consumption
TheAnybus CompactCom 40 Common Ethernet is designed to fulfil the requirements of a Class
B module.
For more information about the power consumption classification used on the Anybus CompactCom 40 platform, consult the general Anybus CompactCom 40 Hardware Design Guide.
D.4
Environmental Specification
Consult the Anybus CompactCom 40 Hardware Design Guide for further information.
D.5
EMC Compliance
Consult the Anybus CompactCom 40 Hardware Design Guide for further information.
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix E: Copyright Notices
E
100 (104)
Copyright Notices
Copyright 2013 jQuery Foundation and other contributors
http://jquery.com/
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the “Software”), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to
do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE ANDNONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------rsvp.js
Copyright (c) 2013 Yehuda Katz, Tom Dale, and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the “Software”), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to
do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------libb (big.js)
The MIT Expat Licence.
Copyright (c) 2012 Michael Mclaughlin
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the “Software”), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to
do so, subject to the following conditions:
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix E: Copyright Notices
101 (104)
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
-------------------------------------------------------------------------------FatFs - FAT file system module R0.09b (C)ChaN, 2013
FatFs module is a generic FAT file system module for small embedded systems. This is a free
software that opened for education, research and commercial developments under license policy of following terms.
Copyright (C) 2013, ChaN, all right reserved.
The FatFs module is a free software and there is NO WARRANTY. No restriction on use. You
can use, modify and redistribute it for personal, non-profit or commercial products UNDER
YOUR RESPONSIBILITY. Redistributions of source code must retain the above copyright
notice.
-------------------------------------------------------------------------------Copyright (c) 2002 Florian Schulze.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the
distribution.
3. Neither the name of the authors nor the names of the contributors may be used to endorse or
promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS “AS IS” AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
ftpd.c - This file is part of the FTP daemon for lwIP
--------------------------------------------------------------------------------
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix E: Copyright Notices
102 (104)
Format - lightweight string formatting library.
Copyright (C) 2010-2013, Neil Johnson
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials provided with the
distribution.
* Neither the name of nor the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------Print formatting routines
Copyright (C) 2002 Michael Ringgaard. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1.
Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.
2.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided
with the distribution.
3.
Neither the name of the project nor the names of its contributors may be used to endorse
or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
“AS IS”AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
Appendix E: Copyright Notices
103 (104)
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------lwIP is licenced under the BSD licence:
Copyright (c) 2001-2004 Swedish Institute of Computer Science.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the
distribution.
3. The name of the author may not be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------------MD5 routines
Copyright (C) 1999, 2000, 2002 Aladdin Enterprises. All rights reserved.
This software is provided “as-is”, without any express or implied warranty. In no event will the
authors be held liable for any damages arising from the use of this software. Permission is
granted to anyone to use this software for any purpose, including commercial applications, and
to alter it and redistribute it freely, subject to the following restrictions:
1.
The origin of this software must not be misrepresented; you must not claim that you wrote
the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2.
Altered source versions must be plainly marked as such, and must not be misrepresented
as being the original software.
3.
This notice may not be removed or altered from any source distribution.
L. Peter Deutsch
[email protected]
Anybus® CompactCom™ 40 Common Ethernet Design Guide
HMSI-27–269 2.1
last page
© 2017 HMS Industrial Networks AB
Box 4126
300 04 Halmstad, Sweden
[email protected]
HMSI-27–269 2.1.4666 / 2017-07-10T11:06:42
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement