Map Descriptor example 1 - Monitoring a MXL/XLS Device for Events ............................................................... 14
Map Descriptor example 2 – Monitoring Analog Loop Devices ........................................................................... 16
5Configuring the FieldServer as a SBT-FSI Server ............................................................................................ 17
5.1Server Side Connection Descriptors ............................................................................................................ 18
5.2Server Side Node Descriptors ...................................................................................................................... 18
5.3Server Side Map Descriptors........................................................................................................................ 19
FieldServer Specific Map Descriptor Parameters ................................................................................................. 19
Driver Specific Map Descriptor Parameters ......................................................................................................... 19
Map Descriptor example 1 - Emulating a MXL/XLS device with events ............................................................... 20
Map Descriptor example 2 - Emulating a MXL/XLS device with analogs............................................................. 21
Appendix A Useful Features ................................................................................................................................. 22
Appendix A.1. Specifying a Poller Map Descriptor length ....................................................................................... 22
Appendix A.9. Node Status Function ....................................................................................................................... 29
Appendix B Troubleshooting ................................................................................................................................ 30
1-10 (one Client per physical
FieldServer serial port). Depends on
FieldServer model and configuration.
Only 1 Client node allowed on multidrop systems
Server
99
Panel numbers from 1 to 99 may be emulated
1
2
SBT-FSI DESCRI P T ION 1
The SBT-FSI (Siemens Building Technologies – Foreign Systems Interface) driver allows the FieldServer to transfer
data to and from Siemens MXL/XLS devices (NIM-1R1 or NIM-1W or RPM2) over either RS-232 or RS-485 using
MXL/XLS to foreign system protocol. The FieldServer can emulate either a Server or a Client. Note that the Driver
does not support MXL and XLS panels networked together.
Max Nodes Supported
Note that NIM-1R is no longer supported by Siemens and is therefore considered to be legacy while NIM-1W is common.
The ports on the RPM need to be configured by the XLS panel. Configuration can be set up for either RS-232 or RS-485, but not both together.
Connection to the RS-485 port of the RPM has not been tested and is not supported.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
or NIM-1W for Foreign System Interface (FSI) by setting all of the switches in SW2
to open (or OFF). See connection diagram below:
Connect the NIM-1R to an RS-232 port on the Fieldserver as depicted in the fiagram below (brown circle) Connect the NIM-W to an RS-485 port on the FieldServer as depeicted in the diagram below.
Note that NIM-1R is no longer supported by Siemens and is therefore considered to be legacy while NIM-1W is common.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Configuration 1 – One FSI Panel per FieldServer per port, one Panel per FSI
FSI
FSI
PanelPanel
Configuration 2 – One FSI Panel per FieldServer port, 3 panels connected in series to the FSI
FSI
PanelPanelPanel
FieldServer
P1
18
FieldServer
P1
18
18
P2
Connector Pinouts for RS-232 Ports
3.3FSI Connection No t es
It is possible to connect a MXL/XLS device to any RS-232 or RS-485 port. These ports simply need to be
configured for MXL/XLS in the configuration file.
The driver does not support MXL and XLS panels networked together. One FSI panel may be connected per FieldServer port, but multiple panels may be connected per FSI. The
following diagram illustrates two possible connection configurations.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Provide data format. Each Data Array can only take on one
format.5
Int16, Uint16, Bit
Data_Array_Length
Number of Data Objects. Must be larger than the data storage
area required by the Map Descriptors for the data being placed
in this array.
1-10, 000
Data_Array_Function
Special function for Data Array – Refer to Appendix A.9.
Node_Status
// Data Arrays
Data_Arrays
Data_Array_Name
, Data_Format
, Data_Array_Length
Event_Counts
, Uint16
, 19
Fire
, Bit
, 2048
Fire_UnAck
, Bit
, 2048
5
DATA ARRAY P A R AMETERS 4
Data Arrays are “protocol neutral” data buffers for storage of data to be passed between protocols. It is necessary
to declare the data format of each of the Data Arrays to facilitate correct storage of the relevant data.
Example
Format must be Uint16 or Int16 to see trouble codes.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
CONFIGURI NG T HE FIELDSERVER A S A SB T-FSI C L IENT 5
For a detailed discussion on FieldServer configuration, please refer to the FieldServer Configuration Manual. The
information that follows describes how to expand upon the factory defaults provided in the configuration files
included with the FieldServer (See “.csv” sample files provided with the FieldServer).
This section documents and describes the parameters necessary for configuring the FieldServer to communicate
with a SBT-FSI Server.
In FSI mode, the NIM-1R or NIM-1W or RPM allows the FieldServer to gather data from up to 63 MXL/XLS Panels
connected via an MXL/XLS network. The default configuration shipped with the FieldServer will monitor two
panels (1 and 2) with 8 modules (1 to 8) each.
When the FieldServer is configured as a Client, two sets of data are collected by a “poller” Map Descriptor.
The first is a collection of 19 counters per panel. Each 16-bit counter is incremented by the poller Map Descriptor
whenever the corresponding event occurs. An external Client can read these counters to quickly determine
whether a new event has been reported to the Server. The counters are mapped into the Data Array specified for
the poller Map Descriptor. Counter offsets into the Data Array per event type are indicated below:
The second set of data is a collection of bit maps that can be queried to identify the device that has reported the
event. When an alarm event arrives from a device, the corresponding bit is set in two separate arrays. The bit in
one array indicates the alarm has occurred, and the bit in the other array indicates that the alarm has not yet been
acknowledged. When an “alarm clear” event arrives, the bit in the alarm array is cleared. If an “alarm
acknowledge” event arrives, the bit in the un-acknowledged array is cleared. All event arrays in a Client driver
configuration are optional. To enable an event array, a Map Descriptor must be defined in the configuration using
a Map Descriptor message type that corresponds to the array as shown in the following table:
Notes
1 Map Descriptors are used to determine which bit to set in the Data Array. When an event arrives from a
panel, the FieldServer will scan for a Map Descriptor with a Node_ID matching the panel number reported in
the event. This Map Descriptor will point to the Data Array to be modified. The location can be further
refined if a starting module within the panel is specified in the Block_Number field. Each module represents
256 bits that can be set or reset by an event. A Map Descriptor that is 512 bits long with a starting module
(Block_Number) of 3 represents the events for Modules 3 and 4. A Map Descriptor that is 10 bits long will
only map the first 10 devices for that module. The combination of Block_Number and Data_Array_Location
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
can be used to map multiple panels with various numbers of modules into a packed array to be read by the
Server side of the FieldServer.
2 When the customer receives a Communication FieldServer with the default driver installed, the configuration
is set to poll 2 MXL/XLS devices once per second.
3 In addition to the two sets of event counters, alarm bit arrays are set up for 8 modules (1 to 8) per device. If
the required configuration falls within this size, only the Server side of the FieldServer needs to be configured.
To connect to a device using Modbus RTU protocol, configure the interface as if the FieldServer were another
Modbus PLC and create a Map Descriptor to assign a Modbus address (such as 40001) to the Counts Data
Array so that it can be read by the Modbus bus master.
4 If the customer has different panel numbers, the Nodes section of the configuration file will need to be
changed. To add more panels, add Node entries and Map Descriptors by copying the original ones and
modifying the Panel number entries and Data Array offsets. To access panels with more modules, first
increase the Data Array lengths. If the extra modules are contiguous, the Map Descriptors for that panel can
have their lengths increased also. If there are large gaps in the numbering of the module, it will be more
efficient to add additional Map Descriptors by copying the ones that are given and modifying the
Block_Number to start at the next existing module number.
5 While the creation of passive Client-side Map Descriptors is optional, error messages will appear when events
arrive for which Map Descriptors cannot be found. It is therefore recommended that Map Descriptors
(especially ack mapdescs) be allocated even if only as dummies to prevent nuisance error messages.
The configuration file tells the FieldServer about its interfaces, and the routing of data required. In order to enable
the FieldServer for SBT-FSI communications, the driver independent FieldServer buffers need to be declared in the
“Data Arrays” section, the destination device addresses need to be declared in the “Client Side Nodes” section, and
the data required from the Servers needs to be mapped in the “Client Side Map Descriptors” section. Details on
how to do this can be found below.
Note that in the tables, * indicates an optional parameter, with the bold legal value being the default.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Starting module number within
panel. There are 256 points per
module.
1 – 256
Sub_Module
Sub module number for XLS
systems only
0 – 99
Component_Address
Component address for XLS
systems only
0 – 99
Length
Length of Map Descriptor
specifies number of points. There
are 256 points per module.
1 – 10000
Msg_Type
Indicates a “poller” Map
Descriptor or identifies the type
of event message this Map
Descriptor will handle. If this is
configured, the driver will store a
value that indicates the point type
of the event if the Data Array
used on the Map Descriptor is not
of a bit type
5.3.4 Map Descriptor example 1 - Monitoring a MXL/ X L S Device for E ve nt s
To monitor a MXL/XLS device we need only one “poller” Map Descriptor as shown below. The function of this Map Descriptor’s is to continuously check the
MXL device for events from panels. Only one poller Map Descriptor per FieldServer port is required when monitoring more than one MXL/XLS device. The
Node_Name will indicate on which port this Map Descriptor resides.
that will hold event
counters. Data Array
length must be equal
or greater than Data
Array offset plus Map
Descriptor length.
Node_Name from
the passive Map
into event
counters Data
Array where
event counts
will be stored.
Descriptors in the
next section to
specify the port
on which this
poller will be
active.
number from which
events will be
received. Refer to
Appendix A.2
information.
multiples of 19
events according
to Block Number
used.
Refer to Appendix
A.2 for more
information.
message type
for this Map
Descriptor.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Node Name specifies the panel number
for which events will be stored.
Passive Map Descriptors must be added for each event per panel to be monitored:
CD – Client Descriptor
starting module number under
which points are mapped.
are 256 points per module. A length of 1024
holds points for 4 modules.
Notes:
1 All passive Map Descriptors are optional. Specific Map Descriptors may be defined for particular events to be monitored as per the Msg_Type. Should
events happen for which no Map Descriptors are defined, error messages will occur on the FieldServer. It may therefore be useful to add dummy Map
Descriptors especially for ack responses to prevent nuisance error messages.
2Passive Map Descriptors with Node_Name the same as the poller Map Descriptor will only be able to store events from a panel with the same Node_ID
e.g. Node_ID of 1 will only store events from panel 1. To store events from panel 2, it is necessary to add passive Map Descriptors with Node ID of 2 etc.
Do not add poller Map Descriptors for other panels.
3 Important Note about first alarm point and Data Array Offsets
Most SBT-FSI panels have device point numbers starting at one instead of zero. The FieldServer MXL driver reserves Data Array offset zero for points with
device numbers of zero although they are currently not used. Triggering the first alarm point on a MXL panel will thus result in a point status change at
Data_Array_Offset of one instead of zero.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
CONFIGURI NG T HE FIELDSERVER A S A SB T-FSI S E R V E R 6
For a detailed discussion on FieldServer configuration, please refer to the FieldServer Configuration Manual. The
information that follows describes how to expand upon the factory defaults provided in the configuration files
included with the FieldServer (See “.csv” files provided with the FieldServer).
This section documents and describes the parameters necessary for configuring the FieldServer to communicate
with a SBT-FSI Client.
The driver can be used to emulate a MXL/XLS Server device. Other protocol drivers could then poll other remote
devices and access the local MXL/XLS Server data to set or clear events. In this configuration an existing SBT-FSI
system could be replaced with an MXL/XLS emulation. Existing Clients could poll the emulation driver on the
FieldServer to get the same data as from a conventional MXL/XLS Server.
Up to 99 panels can be emulated with the driver. A Map Descriptor has to be defined for each type of remote
device that would normally exist in a MXL/XLS Server. The following types can be used:
The configuration file tells the FieldServer about its interfaces, and the routing of data required. In order to enable
the FieldServer for SBT-FSI communications, the driver independent FieldServer buffers need to be declared in the
“Data Arrays” section, the FieldServer virtual node(s) needs to be declared in the “Server Side Nodes” section , and
the data to be provided to the Clients needs to be mapped in the “Server Side Map Descriptors” section. Details on
how to do this can be found below.
Note that in the tables, * indicates an optional parameter, with the bold legal value being the default.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Specify which port the device is connected to the FieldServer
P1-P8, R1-R210
Protocol
Specify protocol used
Cerberus, SBT-FSI
Enhanced_Protocol
Enables legacy or enhanced protocol.. MXL panels do not currently
support Enhanced_Protocol, so this parameter must be set to “No”
for MXL. The parameter is normally set to “Yes” for XLS, but may be
set to “No” if problems are being experienced.
Yes (XLS)
No (MXL)
System_Type
Specifies Siemens Panel type
MXL, XLS
Echo
Specifies if the server should echo the client’s polls
Yes, No
Baud*
Specify baud rate
110 – 115200,
standard baud
rates only, 19200
Parity*
Specify parity
Even, Odd, None,
Mark, Space
Data_Bits*
Specify data bits
7, 8
Stop_Bits*
Specify stop bits
1 (Vendor
limitation)
Server_Hold_Timeout
Specifies time FieldServer will reserve Server side connection while
waiting for the Client side to update data in Data_Array (if
necessary)
>1.0s
// Server Side Connections
Connections
Port
, Protocol
, Baud
, Parity
, Data_Bits
P1
, SBT-FSI
, 19200
, Even
, 7
Section Title
Nodes
Column Title
Function
Legal Values
Node_Name
Provide name for node
Up to 32
alphanumeric
characters
Node_ID
Panel number
1-99
Protocol
Specify protocol used
Cerberus, SBT-FSI
Server_Hold_Timeout
Specifies time FieldServer will reserve Server side connection
while waiting for the Client side to update data in Data_Array (if
necessary)
>1.0s
10
6.1 Server Side Conne c t i o n Descriptors
Example
6.2 Server Side Node D e scriptors
Not all ports shown are necessarily supported by the hardware. Consult the appropriate Instruction manual for details of the ports available
on specific hardware.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Name of Data Array where point data is to be fetched
from
One of the Data Array names
from “Data Array” section
above
Data_Array_Offset
Starting location in Data Array
0 to maximum specified in
“Data Array” section above
Function
Function of Server Map Descriptor
Server
Server_Hold_Timeout*
Specifies time FieldServer will reserve Server side
connection while waiting for the Client side to update
data in Data_Array (if necessary)
>1.0s
Column Title
Function
Legal Values
Node_Name
Name of Node or panel for which this Map
Descriptor holds points
One of the node names specified
in Section 6.2.
Block_Number
Module number (Note that this only specifies one
module number as opposed to a starting module
number as in the Client Map Descriptor)
1 – 256
Sub_Module
Sub module in XLS system
0 – 99
Component_Address
Component address in XLS system
0 – 99
Length
Length of Map Descriptor
Specifies number of points for the indicated module.
Note that MXL systems typically has only 256 points
per module.
1 – 256
Msg_Type*
If this is configured, the driver will store a value that
indicates the point type of the event if the Data
Array used on the Map Descriptor is not of a bit type
Note that a poller message type may not be used in
a Server Map Descriptor.
6.3.3 Map Descriptor example 1 - Emulating a MXL/XL S d e vice with events
The following list of Map Descriptors emulates a MXL Server,
SD – Server Descriptor
on Panel 1 are emulated with two
Notes:
1 MXL/XLS Server Map Descriptor fields differ in many respects from MXL/XLS Client Map Descriptors. Please follow the examples clearly and read all notes
to ensure a working configuration. No poller Map Descriptors may be defined in a configuration file that is used to configure a MXL/XLS Server.
2 Only one module specified by Block_Number can be emulated with a Server Map Descriptor whereas a Client Map Descriptor specifies a starting module
number with one module for every 256 counts of the Map Descriptor length. You have to use separate Map Descriptors for each module to emulate when
doing a Server configuration.
3 More than one Msg_Type Map Descriptor may be used to represent other modules.
being emulated by this Server
Map Descriptor.
number. A typical
Cerberus Server has 256
points per module.
of points represented
within the indicated
module.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Appendix A.1. Specifying a Poller Map Descriptor length
The poller Map Descriptor is responsible for checking a remote MXL/XLS device for events. When events are
received the poller Map Descriptor increments counters at various offsets in the Data Array specified by the poller
Map Descriptor. The offsets and their meanings are explained under the Client configuration section of this Driver
Manual.
The poller Map Descriptor’s Data Array contains sets of 19 elements or counters. Each set of counters represents
the events from a panel. The Block_Number is used to specify the lowest panel number from which events will be
received. The highest Node_ID of any passive Map Descriptor on the same port as the poller Map Descriptor
specifies the highest panel number from which events will be received. The poller Map Descriptor’s length has to
be at least 19 and has to incremented by 19 for every extra panel above the Block_Number from which events will
be received.
If a poller Map Descriptor length is set below 19 and for example, event “System Reset” is received which needs to
be mapped at offset 18 in the Data Array, the following kernel message will be printed:
“Cannot store alarm event type counts!”, 11010” ‘offset=%u, da=%s”
Event counters for panel 6 will reside in the first 19 elements and those for panel 7 in the next 19 elements.
Warning: An error will be generated when an event arrives from a panel with a number lower than the
Block_Number of the poller. The poller Map Descriptor’s Block_Number must equal the lowest panel number for
which a passive Map Descriptor exists on the same port.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Ensure connection baudrate, start, stopbits and parity match the panel's
settings
Reason 2
Receive buffer full
Increase scan interval on the poller Map Descriptor.
Reason 3
Syntax Error
Check integrity of physical connection to panel, route cables away from
electromagnetic sources that can generate noise.
Reason 4
Unrecognized
message failure
Replace hardware?
Corresponds to Block Number 1
Corresponds to Block Array point 1
Appendix A.2. Interpreting Panel Error Messages
A NAK is sent by the panel when it is unable to respond to a message. The format will be as follows:
T02> DRV-> CER : Panel replied with NAK on last message!
T02> DRV-> CER : Reason: 1
The following table lists the reason for the failure and the suggested corrective action. Note that the messages are
generated by the panel, not the FieldServer.
Appendix A.3. Obtaining Point Addresses from the panel report
In order to configure the FieldServer to capture data from the Panel, the point addresses being used in the panel
need to be identified. The Panel report that can be printed out from the panel can be used for this purpose, but
matching the Report parameters with the FieldServer configuration parameters is not a trivial exercise. The
following notes should assist in identifying the addresses needed for FieldServer configuration
The preamble to the report is not relevant to the FieldServer Driver.
The first Module can be identified by the title NET Address =1. This corresponds to FieldServer’s “Block 1”.
The Module Subaddress corresponds to individual points in the Block Array.
This information is depicted in the following file extract:
NET ADDR: 1 ==> ALD-2 2 Analog Loop Module Page: 5
// this is for activation and deactivation of pseudo points
PNL_1_Act_Entity
, 0s
, Act_Ent
, 0
, Awt
, Panel1
, 1
, 1
, 10
, Entity_Activate_Deact
// Client Side Connections
//
Connections
Port
, Baud
, Parity
, Data_Bits
, Line_drive_on
, Line_drive_off
, Enhanced_Protocol
, Protocol
, System_Type
P1
, 19200
, Even
, 7
, 0.001
, 0.001
, Yes
, Cerberus
, XLS
Map_Descriptors
Map_Descriptor_Name
, Scan_Interval
, Data_Array_Name
, Data_Array_Offset
, Function
, Node_Name
, Block_Number
, Sub_Module
, Block_Offset
, Length
, Msg_Type
POLLER_1
, 2.0s
, Counts_1
, 0
, Rdbc
, Panel1
, 1
, -
, 0
, 19
, Poller
// this is for activation and deactivation of pseudo points
PNL_1_Act_Entity
, 0s
, Act_Ent
, 0
, Awt
, Panel1
, 1
, 1
, 1
, 10
, Entity_Activate_Deact
Appendix A.4. Activating and De-activating Entities
These examples demonstrate the methodology to activate or de-activate equipment on the MXL/XLS panel as per the SBT-FSI protocol specification. This
relates to the opcode Activate/Deactivate Entity 0x7b/0x7c.
The configuration example in Section 4 can be modified as per the example below for Activating and De-activating Entities on the MXL Panel.
The configuration example in Section 4 can be modified as per the example below for Activating and De-activating Entities on the XLS panel.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
This example demonstrates the methodology to arm or disarm equipment on the MXL/XLS panel as per the SBT-FSI protocol specification. This relates to the
opcodes Disarm/manuallycontrol entity – opcode 0x77; Arm entity – opcode 0x78,
The configuration example in Section 4 can be modified as per the example below for Arming and De-arming Entities on the MXL Panel.
The configuration example in Section 4 can be modified as per the example below for Arming and De-arming Entities on the XLS panel.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Block_Number sets the
module number for which this
analog device data pertains
The data values stored are %
e.g. 1, 10 etc
Appendix A.7. Request % Compensation Used / % Dirty
(must be DLC or ALD)
device addresses from 0 to
Length which can be from 1
values per device address,
Appendix A.8. Opcode 45 – Request List Map Descriptors that trigger at Startup or Node Offline and stop at Node Online
Request List Map Descriptors can be added to ensure the current alarm, trouble, supervision, security or status events that have not been cleared or reset in
the remote panel are recorded again after a power-cycle or a re-connection to the panel. Request List Map Descriptors are optional and may be defined per
type as needed.
A Passive Map Descriptor of the indicated type needs to be defined and linked to the Request List Map Descriptors to allow storage of these events.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Refer to the FieldServer Configuration manual for information on how to configure Node status. The only status that can be monitored is the direct connection
from the FieldServer to the main panel since there is no direct communication with the other networked panels.
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com
Messages using special characters with ASCII values higher than 127 (e.g. Portugese ç, á,ó, ã, etc), provide a bad
checksum at 7 data bits. This is resolved if 8 data bits are used.
Appendix B.2. Recording Active Events – XLS Panel
When there is an active event in the XLS panel, the FieldServer will report this event in the Driver log of RUInet
(Remote User Interface) regardless of whether there is a Map Descriptor to store the event or not. The report may
state the location of the event as follows:
1^10^0^26^1
This translates to the following: Panel Number ^ Block (Loop) ^ sub-Module ^ Address ^ Component Address
Alternatively the location of the event could be recorded as:
P:L-D
This translates to the following: Panel Number: Block (Loop) - Device
Appendix B.3. Using Trouble Codes
In order to see the trouble codes for incoming troubles it is necessary to use a Uint16 or Int16 data array for the
trouble instead of the normal Bit. When the driver stores a trouble code of for example 15 into a Bit data array, it
will be displayed as 1 since Bit only holds either a zero or a one value. Using a Uint16 or Int16 data array will
ensure the value of 15 is displayed.
The following information is taken from Siemens Fire Safety documentation
MXL/XLS Trouble Codes
These codes are sent in Field 5 of the Trouble in, Trouble out and Trouble Acknowledge messages 24H, 25H and
26H. Each code is sent as up to 3 ASCII bytes. Leading zeros are not sent. The Request Trouble Type message
(43H) can be used to obtain the text strings shown below for each of these codes. The trouble text string is
returned in the Trouble Type message (53H).
FieldServer Technologies 1991 Tarob Court Milpitas, California 95035 USA Web: www.fieldserver.com