Added section on Bluetooth setup ... Cellular Modbus RS-485 Master Controller ... X-400 module), is a family of powerful web-enabled industrial I/O controllers ...
This composite manual supports the X-4xx products listed below. The user interface and communication features are similar for the entire product family.
control logic, communication and internet protocol features are fully documented in this manual. X-400 Series Products. Part Number. Description. X-400-I.
Revision 1.0 1.1 1.2 1.3 1.4 X-4xx Series User Manual Revisions Description Initial release Updated information about the X-404 module Minor text changes Added information for the X-401 module Added section on Bluetooth setup Updated sections on Cellular setup X-4xx Series Users Manual Scope This composite manual supports the X-4xx products listed below. The user interface and communication features are similar for the entire product family. The specific differences between models are noted throughout this document. This document serves as both an instruction manual and a reference manual. Do not be intimidated by the many and complex features that are supported, the X-4xx modules are intuitive and easy to use. For simple applications refer to the installation instructions and look over the web page examples, general settings, devices and I/O sections. After establishing communications, access the built-in setup and configuration web pages and experiment with the "tool tips" that appear if you hover your mouse over a specific setting. For those with special or complex requirements, the many control logic, communication and internet protocol features are fully documented in this manual. Part Number X-400-I X-400C-I X-401-I X-401-E X-404-I X-404C-I X-405-I X-400 Series Products Description Web-Enabled I/O Controller I/O: Expandable, 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: 9-28VDC Cellular Web-Enabled I/O Controller I/O: Expandable, 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: 9-28VDC Web-Enabled Programmable Controller I/O: 2 Relays, 2 Digital Inputs Power Supply: 9-28VDC Web-Enabled Programmable Controller I/O: 2 Relays, 2 Digital Inputs Power Supply: POE and/or 9-28VDC Modbus RS-485 Master Controller Up to 32 modbus devices/sensors I/O: 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: 9-28VDC Cellular Modbus RS-485 Master Controller Up to 32 modbus devices/sensors I/O: 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: 9-28VDC Temperature /Humidity Monitor I/O: 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: 9-28VDC Page 2 Xytronix Research & Design, Inc. X-4xx Series Users Manual X-405-E X-406-I X-406-E X-408-I X-408-E X-410-I X-410-E X-418-I X-418-E X-420-I X-420-E Temperature /Humidity Monitor I/O: 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: POE and/or 9-28VDC Temperature /Humidity Monitor I/O: 4, 1-Wire Bus (Up to 16 temp/humidity sensors per 1-Wire Bus) Power Supply: 9-28VDC Temperature/Humidity Monitor I/O: 4, 1-Wire Bus (Up to 16 temp/humidity sensors per 1-Wire Bus) Power Supply: POE and/or 9-28VDC Digital Input Module I/O: 8 Digital Inputs Power Supply: 9-28VDC Digital Input Module I/O: 8 Digital Inputs Power Supply: POE and/or 9-28VDC Web-Enabled Programmable Controller I/O: 4 Relays, 4 Digital Inputs, 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: 9-28VDC Web-Enabled Programmable Controller I/O: 4 Relays, 4 Digital Inputs, 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: POE and/or 9-28VDC Analog Input Module I/O: 8 Analog Inputs Power Supply: 9-28VDC Analog Input Module I/O: 8 Analog Inputs Power Supply: POE and/or 9-28VDC Web-Enabled Instrumentation-Grade Data Acquisition I/O: 4-Analog Input, 2-Digital I/O, 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: 9-28VDC Web-Enabled Instrumentation-Grade Data Acquisition I/O: 4-Analog Input, 2-Digital I/O, 1-Wire Bus (Up to 16 temp/humidity sensors) Power Supply: POE and/or 9-28VDC Xytronix Research & Design, Inc. Page 3 X-4xx Series Users Manual Table of Contents Section 1: Introduction......................................................................................................................................... 8 1.1 Overview and Features........................................................................................................................... 8 1.2 Applications........................................................................................................................................... 12 1.3 Security Notes....................................................................................................................................... 12 1.4 Part Numbers, Accessories, and Expansion Modules.......................................................................14 1.4.1 X-4xx Module Model Numbers.......................................................................................................... 14 1.4.2 X-400 Expansion Module Options and Accessories.........................................................................16 1.4.3 Optional Accessories........................................................................................................................ 17 1.5 Connectors & Indicators....................................................................................................................... 18 1.5.1 I/O and Power Connectors................................................................................................................ 18 Section 2: Installation and Connections........................................................................................................... 26 2.1 Installation Guidelines.......................................................................................................................... 26 2.2 Power Supply Connections.................................................................................................................. 27 2.2.1 Power Supply and Power-Over-Ethernet Connections.....................................................................27 2.2.2 Notes about powering the X-400 (X-400 only)..................................................................................27 2.2.3 Optional Power Injector (X-400 only)................................................................................................ 28 2.2.4 Notes about powering the X-404 (X-404 only)...................................................................................28 2.3 Expansion Module Connections (X-400 only).....................................................................................28 2.4 RS-485 Connections (X-404 only)........................................................................................................ 29 2.4.1 RS-485 Line Polarization.................................................................................................................. 29 2.5 Cellular Antenna Connector (X-400C and X-404C only).....................................................................30 2.6 1-Wire Bus Connections....................................................................................................................... 30 2.6.1 Extending Temperature Sensors...................................................................................................... 30 2.7 Relay Connections................................................................................................................................ 32 2.8 Digital Input Connections..................................................................................................................... 34 2.8.1 Switch-Closure Connections............................................................................................................. 34 2.8.2 Water Leak Detector Example.......................................................................................................... 36 2.8.3 AC Input Connections....................................................................................................................... 37 2.9 Analog Input Connections.................................................................................................................... 38 2.9.1 Single-Ended Mode.......................................................................................................................... 38 2.9.2 Differential Mode............................................................................................................................... 39 2.9.3 4-20mA Mode................................................................................................................................... 40 2.9.3.1Monitor Flow, Distance, or Speed with a 4-20mA Sensor...........................................................40 2.9.4 Pseudo Digital Inputs........................................................................................................................ 41 2.10 Digital I/O (X-420 Only)........................................................................................................................ 42 2.10.1 Digital I/O Configured as Inputs...................................................................................................... 42 2.10.2 Digital I/O Configured as Outputs................................................................................................... 43 2.11 Frequency Input (X-420 Only)............................................................................................................. 43 2.12 Network Connection............................................................................................................................ 45 2.13 System Start Up................................................................................................................................... 45 2.14 Establishing Communications for Setup.......................................................................................... 47 2.14.1 Method 1: Assign a Temporary IP Address to the Configuration Computer ..................................47 2.14.2 Method 2: Assign a Temporary IP address to the X-4xx Series module.........................................51 Section 3: Web Server and Setup Pages.......................................................................................................... 53 Page 4 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.1 Setup Strategy....................................................................................................................................... 53 3.2 General Settings Tab............................................................................................................................. 54 3.2.1 General Settings Tab > GENERAL INFORMATION.........................................................................54 3.2.2 General Settings Tab > NETWORK SETTINGS...............................................................................55 3.2.3 General Settings Tab > ADVANCED NETWORK SETTINGS..........................................................58 3.2.4 General Settings Tab > EMAIL SETTINGS......................................................................................65 3.2.5 General Settings Tab > PASSWORDS............................................................................................ 68 3.2.6 General Settings Tab > DATE & TIME............................................................................................. 69 3.2.7 General Settings Tab > BACKUP/RESTORE...................................................................................73 3.2.8 General Settings Tab > RS485 (X-404 and X-404C only)................................................................73 3.2.9 General Settings Tab > Cellular Settings (X-400C and X-404C only)...............................................74 3.2.10 General Settings Tab > Bluetooth Settings (X-400C and X-404C only)..........................................76 3.3 Remote Devices / Devices Tab............................................................................................................. 77 3.3.1 Adding Ethernet and Expansion Modules......................................................................................... 79 3.3.2 Devices > Adding Modbus Sensors (X-404 Only).............................................................................81 3.4 I/O Setup Tab......................................................................................................................................... 83 3.4.1 I/O Setup Tab > Relays.................................................................................................................... 84 3.4.2 I/O Setup Tab > DIGITAL INPUTS................................................................................................... 86 3.4.3 I/O Setup Tab > 1-Wire SENSORS.................................................................................................. 89 3.4.4 I/O Setup Tab > Analog Inputs......................................................................................................... 91 3.4.5 I/O Setup Tab > Registers................................................................................................................ 94 3.4.6 I/O Setup Tab > Modbus Registers (X-404 only)..............................................................................96 3.4.7 I/O Setup Tab > Vin.......................................................................................................................... 99 3.4.8 I/O Setup Tab > TIMERS................................................................................................................ 100 3.5 Control/Logic Tab................................................................................................................................ 101 3.5.1 Control/Logic Tab > TASK/FUNCTIONS........................................................................................ 101 3.5.1.1Scheduled Tasks...................................................................................................................... 102 3.5.1.2Conditional Tasks..................................................................................................................... 108 3.5.1.3Automatic Reboot Tasks........................................................................................................... 113 3.5.1.4Override Schedules.................................................................................................................. 116 3.5.2 Control Logic Tab > BASIC SCRIPT............................................................................................... 117 3.6 Logging Tab......................................................................................................................................... 119 3.6.1 Logging Tab > GENERAL LOGGING SETTINGS .........................................................................119 3.6.1.1Logging Tab > LOG I/O............................................................................................................ 120 3.6.1.2Diagnostic Settings................................................................................................................... 121 3.6.1.3Send Log File........................................................................................................................... 121 3.7 Monitor and Control Tab..................................................................................................................... 124 3.7.1 Monitor & Control Tab > CONTROL PAGE....................................................................................124 3.7.2 Monitor & Control Tab > CONTROL PAGE SETUP.......................................................................125 3.7.3 Monitor & Control Tab > GRAPH LOG FILE...................................................................................131 3.7.3.1Settings..................................................................................................................................... 131 3.7.3.2Graph........................................................................................................................................ 132 Section 4: Control Page................................................................................................................................... 133 4.1 Browser Operation.............................................................................................................................. 133 Section 5: Example Control Scenarios........................................................................................................... 134 5.1 Control Logic Examples Using Tasks/Functions.............................................................................134 5.1.1 Send an email if the temperature is less than 33°C between 9:30PM and 10PM each day...........135 5.1.2 Send Email if Input 1 stops toggling................................................................................................ 136 5.1.3 Send an email message every 24 hours......................................................................................... 137 5.1.4 Network monitor between two X-400 modules (advanced).............................................................138 5.2 Control Logic Examples Using BASIC Scripts.................................................................................140 Xytronix Research & Design, Inc. Page 5 X-4xx Series Users Manual 5.2.1 If an analog input is in the alarm state, send an email every hour..................................................140 5.2.2 Monitor 4 doors, send an Email if a door is open more than 5-minutes..........................................141 5.2.3 Send an email if the AC power fails................................................................................................ 143 5.2.4 Monitor a generator. Send an email if it runs for more than 10 seconds.........................................144 Section 6: Auxiliary Operations....................................................................................................................... 145 6.1 XML....................................................................................................................................................... 145 6.1.1 state.xml......................................................................................................................................... 145 6.1.2 customState.xml............................................................................................................................. 148 6.2 JSON..................................................................................................................................................... 149 6.3 HTTP GET Requests (for custom applications)................................................................................149 6.3.1 Using GET for Control and Monitoring............................................................................................ 149 6.4 SNMP Requests, Objects and Community Strings...........................................................................150 6.4.1 Standard Objects............................................................................................................................ 150 6.4.2 Module Objects............................................................................................................................... 150 6.4.3 TRAPS............................................................................................................................................ 150 6.4.4 Notifications ................................................................................................................................... 150 6.4.5 Community Strings......................................................................................................................... 151 6.4.6 SNMP V3 User-Based Security Model........................................................................................... 151 6.5 External Server and Remote Services............................................................................................... 152 6.5.1 Accessing the module with custom software or third-party applications.........................................152 6.5.2 Using an External Web Server........................................................................................................ 152 6.6 Log Files............................................................................................................................................... 154 Data Log File log.txt............................................................................................................................... 154 System Log File syslog.txt..................................................................................................................... 155 6.7 Modbus/TCP (slave)............................................................................................................................ 157 6.7.1 Modbus Function Code Summary.................................................................................................. 158 6.7.2 Read Coils - Modbus Function Code 01 (0x01)..............................................................................158 6.7.3 Read Discrete Inputs Modbus Function Code 02 (0x02).............................................................160 6.7.4 Read Holding Registers Modbus Function Code 03 (0x03) ........................................................161 6.7.5 Write Single Coil Modbus Function Code 05 (0x05)....................................................................162 6.7.6 Write Multiple Coils - Modbus Function Code 15 (0x0F).................................................................163 6.7.7 Write Multiple Registers Modbus Function Code 16 (0x10).........................................................164 6.8 BASIC Scripts...................................................................................................................................... 165 6.8.1 Structure......................................................................................................................................... 165 6.8.2 Line Format..................................................................................................................................... 165 6.8.3 Supported Statements.................................................................................................................... 166 6.8.4 User-Defined Variables................................................................................................................... 168 6.8.5 Predefined Variables...................................................................................................................... 168 6.8.6 I/O Variables................................................................................................................................... 169 Appendix A: Restoring Factory Default Settings........................................................................................... 173 Appendix B: Installing New Firmware............................................................................................................. 174 Appendix C: Accessing the Device Over the Internet...................................................................................175 Appendix D: Specifications............................................................................................................................. 179 Appendix E: Trademark and Copyright Information......................................................................................188 Appendix F: Warranty....................................................................................................................................... 189 Appendix G: FCC Statement............................................................................................................................ 190 Appendix H: Product Licensing...................................................................................................................... 191 Page 6 Xytronix Research & Design, Inc. X-4xx Series Users Manual Appendix I: Mechanical Dimensions............................................................................................................... 192 Xytronix Research & Design, Inc. Page 7 Section 1: Introduction X-4xx Series Users Manual 1.1 Overview and Features The X-400 seriesTM products (referred to as the X-4xx Series in this manual to avoid confusion with the X-400 module), is a family of powerful web-enabled industrial I/O controllers with many advanced features. The family includes various modules, each with different combinations of inputs and outputs (I/O). The modules all have common setup, communication and operating features. The modules in the X-4xx Series have various combinations of relays, digital inputs, analog inputs, 1Wire Bus (for temperature/humidity monitoring), etc. Most of the modules have fixed number of I/O; however, the X-400 has a ribbon-cable expansion bus which allows expansion I/O modules to be directly connected to the X-400, making its I/O customizable. The X-404 has an RS-485 bus that can be used to communicate with third-party modbus sensors and devices. All of the X-4xx Series modules can share I/O with other X-4xx Series modules in its internal logic. These modules have functional similarities to standard Programmable Logic Controllers (PLC's), and in many cases they can be used as web-enabled PLC's. However, there are differences between the X4xx modules and PLC's. PLC's are typically programmed using ladder logic, instead, the X-4xx Series devices are programmed either by using its simple web-page-based "task builder" or by writing a BASIC script. The X-4xx Series modules are setup and operated using a web browser without the need for custom configuration software. The X-4xx Series was built from the ground up for modern network connectivity and supports various protocols such as HTTP, HTTPS, Modbus/TCP, SNMP, and more. Inputs and Outputs (I/O) Local I/O Each X-4xx module has a basic selection of built-in I/O such as relays, digital inputs, analog inputs, or a 1-Wire Bus for monitoring temperature or humidity. The X-400 module has a ribbon cable expansion bus for connecting I/O expansion modules and the X-404 has an RS485 bus for connecting third-party modbus sensors and devices. Shared or Remote I/O In addition to local I/O, the X-4xx Series can seamlessly communicate and share I/O with any other X4xx Series modules (X-410, X-418, etc.) through the TCP/IP network. The I/O on other devices are referred to as "Remote I/O". Remote I/O can be used by the X-4xx Series for any function and works the same as "local I/O". The I/O can be on a single remote device or it can be spread out between up to up to 32 remote and expansion devices. Page 8 Xytronix Research & Design, Inc. X-4xx Series Users Manual Analog Inputs The X-418 and X-420 modules in the X-4xx Series include a 16-bit, analog data acquisition system for use with industrial sensors, wind direction sensors, pyranometers, pressure transducers, and much more. The X-418 has 8 analog inputs and the X-420 has 4. Each analog input channel is configurable for single-ended or differential operation (differential inputs require two channels). Programmable voltage ranges include; ±1.28V, ±2.56V, ±5.12V and ±10.24V. Four of the channels can be configured for 4-20mA operation (first four channels of the X-418 and all four channels of the X-420). The 4-20mA mode enables a precision internal shunt resistor and configures the A/D for ±5V operation. This feature allows direct connection to 0-20mA current loop transducers. Note that the four channels in the X-418 that do not support this feature can be used with 4-20mA sensors by adding a 250 Ohm resistor in parallel with the input. For applications where digital inputs are needed with the X-418 and X-420, the analog inputs can be configured as pseudo digital inputs with a boolean (true/false) state. The input voltage is compared to a fixed threshold to determine a true/false state. The input is considered "on" when the voltage rises above 3.5V and "off" when it falls below 1.5V. Digital Inputs Several of the modules in the X-4xx Series have digital inputs. Digital inputs are binary with on/off states where the presence of an input voltage is "on" and the absence of a voltage is "off". The inputs use photo-coupler circuits to keep internal and external voltages isolated. With some modules the photocoupler circuits share a common input terminal so those inputs are not isolated from each other. Each digital input has the ability to measure the total-on time since power up, the total-on time since the input was last off, count the number of rising/falling edges, or act as a low frequency input. Digital inputs can be monitored and used to control logic. Relays Several modules in the X-4xx Series have internal relays. The relays vary in size and configuration. Some modules share common terminal connections between relays with the contacts internally connected together and some modules have contacts that are completely isolated. The internal relays can be used to operate indicator lights, interposer relays, and other low voltage devices. The screw terminals are internally connected directly to the relays with no internal fuse or other over-current protection. The relay contacts are isolated from all other circuits. Control the relays with a web browser, timers, input changes, or programmable logic. 1-Wire Sensor Bus Many of the modules have a 1-Wire port for connecting digital sensors for measuring temperature, humidity and more. The sensors are available in several configurations, are interchangeable and require no calibration. The sensors require three connections for communications and power (+5V, Gnd, Data). Control relays or trigger email messages based upon these values. Up to sixteen digital sensors can be connected to each 1-wire bus. Digital I/O (X-420 Only) The X-420 has two digital I/O terminals. These I/O terminals are non-isolated, 5-volt logic and can be programmed as outputs or inputs. They have programmable pull-up or pull-down resistors when configured as inputs. They can be used as pulse counters with a maximum pulse rate of 200 Hz. Frequency Input (X-420 Only) The X-420 has an AC coupled frequency input. This is suitable for use with magnetic and optical wind speed sensors or it can be used with an AC transformer to monitor AC line or generator frequency. Xytronix Research & Design, Inc. Page 9 X-4xx Series Users Manual Built-in Web Server Users can monitor and control the X-4xx Series devices using a web browser, the CBW Mobile app, or custom applications written for a computer, PLC, or other automation controller. With the built-in web server users can access the X-4xx Series devices directly as a self-contained, stand-alone unit. No gateways, cloud servers, or external services are required. If desired, however, the X-4xx Series can be used with our ControlByWeb.cloud cloud service to simplify network setup. The X-4xx Series supports standard HTTP requests or encrypted HTTPS requests. The example below shows a web page which has a status display and on/off buttons for several relays. The relays can be renamed to show their operational function. Simple/Advanced Logic Task Builder The X-4xx Series devices have a built-in Task Builder user interface which allows you to create custom "Tasks" for simple and advanced control logic, without the need for scripting. Easily create scheduled and conditional logic tasks. Tasks or logic can be configured to run all of the time, only during a normal schedule, or only during an over-ride schedule. BASIC Script The X-4xx Series has a built-in BASIC interpreter for custom applications and logic not possible through the built-in Task Builder. Cellular Network Connection (X-400C and X-404C only) Some modules in this series include a built-in cellular modem which provides connectivity through cellular data networks in addition to Ethernet connectivity. The cellular network option can be used for primary communications for applications where no other network is available or it can be used as a backup when the local network fails. Note that cellular connectivity does not provide direct access to the built-in web pages. Instead, the cellular network can be used for outgoing alert messages and/or for connectivity through the cloud service. Note also that use of cellular network requires monthly service fees. Cellular connectivity is not shared with ethernet devices connected to cellular enabled devices. Page 10 Xytronix Research & Design, Inc. X-4xx Series Users Manual Email/Text Message Notifications Send email alerts based on any sensor or input conditions, such as: temperature, time, digital inputs, power supply levels, and more. Send text messages to a cell phone through a wireless carrier's email bridge (many wireless carriers offer this as a free service). The X-4xx Series also supports encrypted emails using either implicit or explicit TLS (STARTTLS). User Permissions The X-4xx Series supports three types of users with different levels of access to the device's settings and Control Pages. Each user type has a unique password and is configured by the administrator in the setup pages. User level passwords may be disabled however, administrator level passwords are required. Real-time Clock The Real Time Clock is used for scheduled tasks and for logging. It can be set manually or automatically using NTP servers. When it is configured to be set using NTP, it can be configured to update the time one time or periodically so it will always be accurate. It can be configured to automatically adjust for daylight savings time. Logging Configurable logging of local and remote I/O, Vin, and Register values. It can be configured to log periodically, when events occur, or both. In addition to data logging, the X-4xx Series provides system logging of device operating parameters and events, such as power reset and NTP requests. Graphing Logged data can be graphed directly by any HTML 5 compatible web browser. Security The X-4xx Series supports TLS V1.2 encryption. Specifically the X-4xx Series supports HTTPS connections, can send encrypted emails, can communicate with remote devices using TLS, and send logged data to FTP servers over an encrypted connection. Modbus & SNMP The X-4xx Series can function as a Modbus/TCP slave device. All devices in this series support SNMP V1, V2, and V3 Cloud Services (not required) X-4xx Series can be configured to automatically connect to our cloud service called ControlByWeb.cloud. This feature is not required, but does simplify the configuration process and internet access to an X-4xx installed behind a network router by eliminating manual configuration of the device and port forwarding setup on routers. The options to use the X-4xx as a stand alone device or through a cloud server makes it very powerful and very flexible. Note that by default this feature is disabled and the module(s) will not make any attempt to connect to the ControlByWeb.cloud service unless an account is set up and this feature is enabled by an administrator. High-Reliability Design The X-4xx Series is designed from the ground up for reliability rather than cost savings. Shortcuts are not used in its hardware design, programming, or assembly. It is built with industrial-grade, wide temperature range components which are more reliable than the components used in consumer grade products. The devices includes transient protection on the power input and all I/O circuitry, and Xytronix Research & Design, Inc. Page 11 X-4xx Series Users Manual operational protection such as watchdog timers and voltage supervisors. Every unit is fully tested before it is shipped from our facility. Power Supply The X-4xx Series employs a switch-mode power supply which works from 9 to 28VDC. With this type of power supply, the current draw decreases as the voltage increases. The power supply voltage (Vin+) is monitored internally and can displayed, logged, or used for any standard logic function such as control a relay or configured to send email/text notifications. Some of the X-4xx modules can be powered using power over ethernet (POE) using 802.3af POE (48V) switches. 1.2 Applications The X-4xx Series is designed to meet a broad range of commercial and industrial applications. These modules work well as stand-alone devices or a part of a larger system. Many of their features such as scheduling, logging, input state monitoring, and the ability to share I/O between devices, make the X-4xx Series very powerful, yet simple controllers. You can use the X-4xx Series to control motors, lights, coils, pumps, valves, bells, etc. You can also use it to monitor alarms sensors, switches, fluid level switches, battery voltage, temperature, humidity, and much more. A few example applications include: · Server or telemetry system "watchdog" · Web-enabled Controller · Refrigeration Monitoring · Solar Energy Controller · Process Monitor · Server for other ControlByWeb products: provide a single web page which controls other ControlByWeb devices. · Process Controller · Security Systems · Programmable Scheduling Controller 1.3 Security Notes The X-4xx Series are dedicated devices that do not employ a general purpose computer operating system (i.e. Windows, Linux etc.) They do not have terminal access such as telnet, SSH, nor uncontrolled open ports. They have no services for communicating with computers or other devices on the network other than the limited protocols listed in the specifications (HTTP, HTTPS, Modbus, etc). There is no file system in these modules. Executable files (other than basic scripts) cannot be installed on these devices. This means it is extremely difficult, if not impossible, for someone to `break in' to these modules and access other devices on your local network. The simplicity of the X-4xx Series makes it an inherently secure device. Nevertheless, as with any device installed on a network, appropriate security precautions should be observed. Where security is concerned, access to the X-4xx Series should be limited to using encrypted connections to the web server server using HTTPS. Unencrypted access can be disabled in the Network setup page. Page 12 Xytronix Research & Design, Inc. X-4xx Series Users Manual It is recommended that passwords be enabled for the Administrators, Managers, and perhaps Users. Passwords should be at least 8 characters in length and use a combination of upper and lower case letters and numbers. For additional security, the X-4xx Series includes an IP filter and can be used in conjunction with an external firewall to further limit access to selected IP addresses. The X-4xx Series's firmware can be upgraded, but not over the internet. By design, a firmware upgrade requires physical access to the device. See Appendix B: Installing New Firmware. Xytronix Research & Design, Inc. Page 13 X-4xx Series Users Manual 1.4 Part Numbers, Accessories, and Expansion Modules 1.4.1 X-4xx Module Model Numbers Part Number X-400-I X-400C-I X-401-I X-401-E X-404-I X-404C-I X-405-I X-405-E Description Digital Analog Relays 1-wire Other I/O Inputs Inputs bus Modular I/O modular modular modular 1 channel Expansion controller. (up to 16 bus for sensors) connection I/O is added by of up to 32 connecting I/O expansion modules modules. Modular I/O modular modular modular 1 channel Expansion controller with (up to 16 bus for Cellular sensors) connection connectivity. of up to 32 I/O I/O is added by modules connecting expansion modules. 2-relay 2 2 2-input 2-relay 2 2 2-input Modbus RS485 master controller Modbus RS485 master controller with Cellular connectivity Temperature/ Humidity Monitor Temperature/ Humidity 1 channel RS-485 (up to 16 serial bus sensors) for connection of up to 32 modbus sensors 1 channel RS-485 (up to 16 serial bus sensors) for connection of up to 32 modbus sensors 1 channel (up to 16 sensors) 1 channel (up to 16 Power Supply 9-28VDC 9-28VDC 9-28VDC Power Over Ethernet and/or 9-28VDC 9-28VDC 9-28VDC 9-28VDC Power Over Ethernet Page 14 Xytronix Research & Design, Inc. X-4xx Series Users Manual Monitor X-406-I X-406-E Temperature/ Humidity Monitor Temperature/ Humidity Monitor X-408-I Digital input 8 X-408-E Digital input 8 sensors) 4 channel (up to 64 sensors) 4 channel (up to 64 sensors) X-410-I 4-relay 4 4-input X-410-E 4-relay 4 4-input 4 1 channel (up to 16 sensors) 4 1 channel (up to 16 sensors) X-418-I 8-analog in X-418-E 8-analog in 8 1 channel (up to 16 sensors)l 8 1 channel (up to 16 sensors) X-420-I 4-analog in 2 4 2-digital I/O X-420-E 4-analog in 2 4 2-digital I/O 1 channel (up to 16 sensors) 1 channel (up to 16 sensors) and/or 9-28VDC 9-28VDC Power Over Ethernet and/or 9-28VDC 9-28VDC Power Over Ethernet and/or 9-28VDC 9-28VDC Power Over Ethernet and/or 9-28VDC 9-28VDC Power Over Ethernet and/or 9-28VDC 9-28VDC Power Over Ethernet and/or 9-28VDC Xytronix Research & Design, Inc. Page 15 X-4xx Series Users Manual 1.4.2 X-400 Expansion Module Options and Accessories The following list of expansion modules can be connected to the X-400 and X-400C ONLY. Other devices in the X-4xx Series do not support these expansion modules. See www.ControlByWeb.com/x400/ for an up-to-date list of available expansion modules and accessories. Expansion Module X-11s X-12s X-13s X-15s Description 2-Relay module, Form C (SPDT), 20 Amp, 277VAC, 30VDC with mating connector 8-Relay module, Form C (SPST), 2.5 Amp, 120VAC, with mating connector 2-Channel thermocouple module, Type-K, -200°C to 1250°C (thermocouple not included) 8-Channel input module, optically isolated Part Number X-11s X-12s X-13s-K X-15s X-16s X-17s X-18s Analog module, 8-channel, 0-5V, 24-bit, single or differential inputs, 5V reference output 4 Relay (SPST 2.5 Amp), 4 Digital Input (Optically-Isolated shared common) Expansion Module 10 Relay (SPDT 30 Amp, 277VAC, 30VDC) Expansion Module X-16s X-17s X-18s X-19s X-20s X-21s X-22s Accessories 16 Relay (SPST 2 Amp, 30VDC, 30VAC), 16 Digital and 4 Analog Input (0-5V 12-bit, single ended) Expansion Module X-19s 6 Relay (SPDT 15 Amp, 277VAC, 30VDC), 6 Digital Input (Optically-Isolated) Expansion Module X-20s 4 Relay (Form C / SPDT 2.5 Amp, 125VAC, 28VDC) Expansion X-21s Module Analog module, 8-channel, +/-10V, 4-20mA, single or differential inputs, 5V reference output X-22s Expansion Cable Power Injector 10-conductor ribbon cable with connectors, 1-32 positions, 2.5-inches between connectors For example: EXPCBL-1 for 1 expansion module (cable with 2-connectors) EXPCBL-2 for 2 expansion modules (cable with 3-connectors) EXPCBL-3 for 3 expansion modules (cable with 4-connectors) Optional connector module for supplying external power to the expansion bus ribbon cable EXPCBL-X (where X=1-32) X-PINJECT Page 16 Xytronix Research & Design, Inc. X-4xx Series Users Manual 1.4.3 Optional Accessories Accessory Power Supply Description Regulated, DIN-rail / wall mount 24V DC, 1.75Amp, 100-240V AC Input Temperature Sensor Temperature Sensor Temperature Sensor Temperature/Humidity Sensor Probe Digital temperature sensor with 12 inch wire leads. Note: Leads may be extended -55°C to +125°C (±0.5°C from -10°C to +85°C) Digital temperature sensor with 3 foot wire leads (housed in a water resistant stainless steel probe) -55°C to +125°C (±0.5°C from -10°C to +85°C) Digital temperature sensor with 32 foot wire leads (housed in a water resistant stainless steel probe) -55°C to +125°C (±0.5°C from -10°C to +85°C) Digital temperature and humidity sensor probe -40°C to +80°C ±0.4°C, 0-99%RH ±2% Part Number 2868648 X-DTS-U X-DTS-S3C X-DTS-S32C X-DTHS-P Thermocouple to 1-Wire Thermocouple to 1-Wire interface, Type K Adapter -200°C to +1250°C, ±.5°C X-TC1W-K Temperature/Humidity Sensor (Wall Mount) Temperature Sensor Spare Connector Digital temperature and humidity sensor -40°C to +80°C ±0.4°C, 0-99%RH ±2% 1-Wire Digital temperature sensor housed in vented plastic enclosure 14-Pin Connector Plug X-DTHS-WMX X-DTS-WMX X-TERM14A Xytronix Research & Design, Inc. Page 17 X-4xx Series Users Manual 1.5 Connectors & Indicators Expansion Bus connector (X-400 only) The 2x5-pin ribbon cable expansion bus connector allows for a family of expansion modules to be connected directly to the X-400. The ribbon cable provides both communication and power connections to the expansion modules. The cable can be a daisy chain with multiple connectors. RS-485 Connector (X-404 only) The 5-pin screw terminal connector allows the connection of third-party modbus sensors and devices for monitor and control. Network Connector The Ethernet connector is a standard, 8-position modular receptacle for RJ-45 connectors. The Ethernet port supports auto-negotiation and automatically selects the speed, duplex mode and works with straight or crossover cables. Cellular Antenna Connector (X-400C and X-404C only) Models that have the option for cellular network connectivity have a Female, SMA type coax connector to attach a cellular antenna. (DO NOT OPERATE THESE MODELS WITHOUT AN ANTENNA CONNECTED). Power Indicator The green Power LED indicator is illuminated whenever the device is powered. Ethernet Indicators The LINK LED is illuminated green when the device is properly connected to an Ethernet network and is ready to communicate. Network communications will only occur if this LED is illuminated. The ACT LED flashes yellow when activity is detected on the network. Relay Indicators On modules that have relays, the yellow LEDs illuminate when the corresponding relay is energized. When a relay is energized, the common and normally open contacts are closed. Input Indicators On modules that have digital inputs, the yellow LEDs illuminate when the corresponding digital input is "on". 1.5.1 I/O and Power Connectors Each module has a removable screw terminal connector for making connections to the power source and I/O. The connections for each X-4xx module are described below. Page 18 Xytronix Research & Design, Inc. X-4xx Series Users Manual X-400 I/O Controller 5-pin Connector Pin Description Vin+ Power supply input 9-28VDC (+) 24V recommended. CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Gnd Vin- (Ground) power supply input. +5VDC. This output voltage is used to provide 5Vo power for the digital sensor(s) on the 1-Wire bus. Data 1-Wire bus data connection for digital temperature and humidity sensors. Gnd Ground connection for 5Vo output. Pin Vin+ Gnd Vo+ Gnd In1+ In1In2+ In21C 1NC 1NO 2C 2NC 2NO X-401 I/O Controller 5-pin Connector Description Power supply input 9-28VDC (+) CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. This output voltage is used to provide power for the digital inputs. Nominal voltage is Vin 0.7V or 11V when powered with POE. Ground terminal. Positive side of optically isolated digital input 1. Negative side of optically-isolated input 1. Positive side of optically isolated digital input 1. Negative side of optically-isolated input 1. Relay 1 common contact. Relay 1 normally closed contact. Relay 1 normally open contact. Relay 2 common contact. Relay 2 normally closed contact. Relay 2 normally open contact. Xytronix Research & Design, Inc. Page 19 X-404 Modbus RS-485 Master 5-pin Connector Pin Description Vin+ Power supply input 9-28VDC (+). CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Gnd Vin- (Ground) power supply input. 5Vo +5VDC. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. Data 1-Wire bus data connection for digital temperature and humidity sensors. Gnd Ground connection for 5Vo output. X-4xx Series Users Manual X-404 Modbus RS-485 Master 5-pin RS-485 Connector Pin Description D(A) RS-485 serial differential bus (See RS-485 Connections (X-404 only)) D(B) RS-485 serial differential bus (See RS-485 Connections (X-404 only)) Gnd Signal common, ground connection for the RS485 bus. Connect to the shield or gnd of Modbus slave devices to keep D(A) and D(B) signals within the common mode range of the RS-485 transceiver. Gnd Signal common, ground connection for the RS485 bus. Connect to the shield or gnd of Modbus slave devices to keep D(A) and D(B) signals within the common mode range of the RS-485 transceiver. +Vo Optional +5VDC output (not needed for RS-485 communication) Pin Vin+ Gnd 5Vo Data Gnd X-405 1-Wire 5-pin I/O Connector Description Power supply input 9-28VDC (+). CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. +5VDC. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. 1-Wire bus data connection for digital temperature and humidity sensors. Ground connection for 5Vo output. Page 20 Xytronix Research & Design, Inc. X-4xx Series Users Manual Pin Vin+ Gnd Bus A 5Vo Bus A Data Bus A Gnd Bus B 5Vo Bus B Data Bus B Gnd Bus C 5Vo Bus C Data Bus C Gnd Bus D 5Vo Bus D Data Bus D Gnd X-406 Quad 1-Wire 14-pin Connector Description Power supply input 9-28VDC (+) 24V. CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. +5VDC. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. 1-Wire bus data connection for digital temperature and humidity sensors. Ground connection for 5Vo output. +5VDC. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. 1-Wire bus data connection for digital temperature and humidity sensors. Ground connection for 5Vo output. +5VDC. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. 1-Wire bus data connection for digital temperature and humidity sensors. Ground connection for 5Vo output. +5VDC. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. 1-Wire bus data connection for digital temperature and humidity sensors. Ground connection for 5Vo output. Xytronix Research & Design, Inc. Page 21 Pin Vin+ Gnd In1+ In1&2 Common In2+ In3+ In 3&4 Common In4+ In5+ In 5&6 Common In6+ In7+ In 7&8 Common In8+ X-408 8-Digital Input 14-pin Connector Description Power supply input 9-28VDC (+) 24V. CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. Positive side of optically isolated digital input 1 Common negative side of optically-isolated inputs 1 & 2. Positive side of optically isolated digital input 2 Positive side of optically isolated digital input 3 Common negative side of optically-isolated inputs 3 & 4. Positive side of optically isolated digital input 4 Positive side of optically isolated digital input 5 Common negative side of optically-isolated inputs 5 & 6. Positive side of optically isolated digital input 6 Positive side of optically isolated digital input 7 Common negative side of optically-isolated inputs 7 & 8. Positive side of optically isolated digital input 8 X-4xx Series Users Manual Page 22 Xytronix Research & Design, Inc. X-4xx Series Users Manual Pin Vin+ Gnd Rly1 Rly2 Rly3 Rly4 Com In1+ In2+ In3+ In4+ Gnd Data 5Vo X-410 4-Relay, 4-Input 14-pin Connector Description Power supply input 9-28VDC (+) 24V. CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. Relay 1 Normally Open Contact Relay 2 Normally Open Contact Relay 3 Normally Open Contact Relay 4 Normally Open Contact Relay 1,2,3, and 4 Common Contact Positive side of the digital input 1 Positive side of the digital input 2 Positive side of the digital input 3 Positive side of the digital input 4 Ground connection for 5VDC output, digital inputs and the 1-Wire sensor(s) Data connection for digital sensor(s) on the 1-Wire bus. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. It can also be used as an excitation voltage for the digital inputs. Xytronix Research & Design, Inc. Page 23 Pin Vin+ Gnd Vref Agnd Ain1 Ain2 Ain3 Ain4 Agnd Ain5 Ain6 Ain7 Ain8 Agnd X-418 8-Channel Analog 14-pin Connector Description Power supply input 9-28VDC (+) 24V. CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. +5.0 Reference output Analog ground for analog inputs Analog Input 1+ ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Analog Input 2+ (single-ended mode) or Analog Input 1- (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Analog Input 3+ ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Analog Input 4+ (single-ended mode) or Analog Input 3- (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Analog ground for analog inputs Analog Input 5+ ±1.28V, ±2.56V, ±5.12V, ±10.24V Analog Input 6+ (single-ended mode) or Analog Input 5- (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V Analog Input 7+ ±1.28V, ±2.56V, ±5.12V, ±10.24V Analog Input 8+ (single-ended mode) or Analog Input 7- (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V Analog ground for analog inputs X-4xx Series Users Manual Page 24 Xytronix Research & Design, Inc. X-4xx Series Users Manual Pin Vin+ Gnd Vref Agnd Ain1 Ain2 Ain3 Ain4 I/O1 I/O2 Freqin 5Vo Data Gnd X-420 Multifunction Analog 14-pin Connector Description Power supply input 9-28VDC (+) 24V. CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. +5.0 Reference output Analog ground for analog inputs 1-4 Analog Input 1+ (single-ended mode) or Analog input 1+ (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Analog Input 2+ (single-ended mode) or Analog Input 1- (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Analog Input 3+ (single-ended mode) or Analog Input 3+ (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Analog Input 4+ (single-ended mode) or Analog Input 3- (differential mode) ±1.28V, ±2.56V, ±5.12V, ±10.24V and 0-20mA Digital input/output. Configurable as a 0-5V logic input or output. Programmable pull resistors for input mode. Digital input/output. Configurable as a 0-5V logic input or output. Programmable pull resistors for input mode. Frequency input, AC coupled. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. It can also be used as an excitation voltage for the digital inputs. Data connection for digital sensor(s) on the 1-Wire bus. Ground connection for 5VDC output, digital inputs and the 1Wire sensor(s) Pin Vin+ Gnd 5Vo Data Gnd X-430 IP Server Monitor 5-pin I/O Connector Description Power supply input 9-28VDC (+). CAUTION: DO NOT EXCEED MAXIMUM POWER SUPPLY VOLTAGE. Vin- (Ground) power supply input. +5VDC. This output voltage is used to provide power for the digital sensor(s) on the 1-Wire bus. 1-Wire bus data connection for digital temperature and humidity sensors. Ground connection for 5Vo output. Xytronix Research & Design, Inc. Page 25 X-4xx Series Users Manual Section 2: Installation and Connections Installation consists of mounting the X-4xx Series, connecting it to an Ethernet network, connecting the I/O to other accessories/sensors, and providing power. The installation is completed by configuring the device's settings using a web browser. 2.1 Installation Guidelines · This device must be installed by qualified personnel. · This device must not be installed in unprotected outdoor locations. This device should be located in a clean, dry location where it is protected from the elements. Ventilation is recommended for installations where ambient air temperatures are expected to be high. · This device must not be used for medical, life saving purposes, or for any purpose where its failure could cause serious injury or the loss of life. · This device must not be used in any way where its function or failure could cause significant loss or property damage. · Do not use to directly control motors or other actuators not equipped with limit switches or other safeguards to protect from equipment or wiring failures. · If this device is used in a manner not specified by Xytronix, the protection provided by the equipment may be impaired. · CAUTION: Miswiring or misconfiguration could cause permanent damage to the device, the equipment to which it is connected, or both. · CAUTION: Make sure the power is shut off before making connections Wall Mounting Mount the module to a wall by using two #8 screws. Attach the screws to the wall vertically spaced exactly 2.5 inches apart. The head of the screw should be about 1/10 inch away from the wall. DIN-Rail Mounting The module can be mounted to a standard (35mm by 7.55mm) DIN-Rail. Attach the module to the DINRail by hooking the top hook on the back of the enclosure to the DIN-Rail and then snap the bottom hook into place. To remove the X-4xx Series from the DIN-Rail, use a flat-head screwdriver. Insert the screw driver into the notch in the release tab and pry against the enclosure to release the bottom hook. Page 26 Xytronix Research & Design, Inc. X-4xx Series Users Manual 2.2 Power Supply Connections A removable terminal connector is provided for making the power connections. To help protect the module from mechanical stress: 1. Make sure power is turned off and 2. Remove the terminal connector from the module and make wiring connections to the terminals. 3. Reconnect the terminal connector and apply power. See Appendix D: Specifications for wire size, temperature rating and torque requirements for making connections to the terminal blocks. 2.2.1 Power Supply and Power-Over-Ethernet Connections The X-4xx requires power for its internal logic circuits. Connect a 9-28 VDC power supply to the +Vin and Gnd terminals. A regulated power supply is recommended, such as a wall-mount AC-DC adapter. Verify that the adapter is rated for the operating current of the X-4xx (See Appendix D: Specifications for the current requirements.) Multiple modules and other devices may be connected to a single power supply by connecting the power supply input terminals in parallel. The power supply must have an ample current rating to power all units connected. POE models (X-4xx-E) are normally powered from a Power Sourcing Equipment (PSE) device which passes DC power along with data on the twisted pair Ethernet cabling. This allows a single cable to provide both the data connection and DC power. With the X-4xx-E no connections are needed to the Vin+ and Gnd terminals. The Vin+ and Gnd terminals however, can be used as a backup power source. The X-4xx-E has an internal "diode or" circuit between the Vin+ terminal and the internal Powered Device (PD) circuits. If a power supply is connected to the Vin+ terminal, the X-4xx-E will draw power from the PSE if the input voltage is less than 12.0V, and from the Vin+ terminal if the input voltage is greater than 12.0V. If the PSE power fails, the X-4xx-E will draw all power from the Vin+ terminal. 2.2.2 Notes about powering the X-400 (X-400 only) The expansion modules draw their power from the X-400 through the expansion bus ribbon cable. If expansion modules are connected to the X-400, the power supply must have enough capacity to power both the X-400 and any expansion modules connected to the X-400. The expansion bus can provide up to 1.70 Amps for powering the attached expansion modules. The maximum number of expansion modules you can attach depends on the module type and power requirements of the modules. The expansion modules employ modern switch-mode power supplies. With this type of power supply the current draw decreases as the voltage increases. As such, you can add more expansion modules by using a 24-volt power supply than you can with a 12-volt power supply. If additional power is needed for modules on the expansion bus, please see the next section called Optional Power Injector (X-400 only). As an example, an X-11s (2 relay expansion module) would use 105 mA with a 24VDC power supply when connected to the X-400. The X-400 would be able to support up to 16 modules under this configuration (16 X 105mA = 1.68A). This example is workable because the expansion bus load current is less than 1.70 Amps. For this example the power supply must be capable of providing 1.76A at 24VDC (80mA for the X-400 plus 1.68A for the devices on the expansion bus). If only using a 12VDC power supply, each X-11s (2 relay expansion module) would use 196mA. The X400 would be able to support eight modules under this configuration (8 x 196mA = 1.57A). This configuration is workable because the expansion bus load current is less than 1.70 Amps. For this example the power supply must be capable of providing 1.72A at 12VDC (150mA for the X-400 plus Xytronix Research & Design, Inc. Page 27 1.57A for the devices on the expansion bus). X-4xx Series Users Manual 2.2.3 Optional Power Injector (X-400 only) As described in the section above, the expansion modules draw their power from the X-400 through the expansion bus ribbon cable. The X-400 can provide up to 1.7 Amps for powering the attached expansion modules. In applications where a large number of expansion modules are used and additional current capacity is needed, a DC power injector can be employed. This accessory has two ribbon cable connectors and a connector for supplying power (928V DC) to the expansion bus separately from the X400. The communication signals pass-through the power injector but the DC power from the X-400 does not. The power injector thus provides power for all of the expansion modules to the left side of the injector. The ribbon cable itself can only carry 1.7Amps maximum. Install one or more power injectors such that no portion of the ribbon cable carries more than 1.7Amps Note: To provide a coordinated power up sequence, it is recommended to power the X-400 and any power injectors using the same power supply. 2.2.4 Notes about powering the X-404 (X-404 only) Modbus sensors draw their power from the X-404 through the RS-485 5 pin connector. If modbus sensors are connected to the X-404, the power supply must have enough capacity to power both the X404 and any modbus sensors connected to the X-404. The RS-485 bus can provide up to 1.70 Amps for powering the attached modbus sensors. The maximum number of modbus sensors you can attach depends on the power requirements of the sensors up to a maximum of 32 sensors. 2.3 Expansion Module Connections (X-400 only) Expansion modules are connected to the X-400 with a 10-conductor ribbon cable. Normally the X-400 and the expansion modules are mounted side by side as shown in the photo below. The ribbon cable connectors have a polarization lug to ensure correct connections. Note: The following image shows the X-600M connected to several expansion modules; however, connecting expansion modules to the X-400 is the same. Page 28 Xytronix Research & Design, Inc. X-4xx Series Users Manual 2.4 RS-485 Connections (X-404 only) The X-404 serves as a Modbus Master device. The D(A) and D(B) terminals provide serial RS-485 communications. RS-485 is used to implement linear bus topologies using only two wires. It is recommended to arrange the bus as a connected series of multi-drop nodes in a line or bus, not a star or ring. Star or ring topologies are not recommended because of signal reflections. In addition to the differential pair signals, you must make a ground connection between the shield or power supply common of your Modbus slave devices and one of the GND terminals on the X-404. The signal common (SC) ground connection serves to keep the D(A) and D(B) signals within the common mode range of the internal RS-485 transceiver. 2.4.1 RS-485 Line Polarization The X-404 has an internal 120-ohm balanced line termination network. As a master device, the termination network provides pull-up/pull-down bias to insure that its receiver stays in the idle state when no data signal is present. The D(A) circuit has a pull-up resistor to a 3.3V volts and the D(B) circuit has a pull-down resistor to Gnd. Unfortunately, despite the TIA-485 and Modbus over Serial Line Specifications, there is confusion in the industry over the designation of the D(A) and D(B) differential signal connections. The X-404 uses the following connections: X-404 line polarization · For a MARK (idle bus), (logic 1), the D(A) terminal is positive relative to the D(B) terminal. · For a SPACE (logic 0), the D(A) terminal is negative relative to the D(B) terminal Xytronix Research & Design, Inc. Page 29 X-4xx Series Users Manual 2.5 Cellular Antenna Connector (X-400C and X-404C only) Modules that include cellular connectivity come with an omnidirectional antenna for use with the embedded LTE-M cellular radio. The included antenna is suitable for most applications and connects to the female SMA connector on the faceplate. Do not operate these modules without the antenna connected. The omnidirectional antenna radiates RF signals in all directions in one plane with a pattern shaped somewhat like a doughnut or torus. The radiated power decreases above or below the plane, dropping to zero on the antenna's axis. Orient the antenna vertically so the antenna will radiate in all horizontal directions and so little radio energy is aimed into the sky or down toward the earth and lost. The antenna used for this transmitter must be installed to provide a separation distance of at least 20 cm (approx. 8 in) from the device and must not be co-located or operating in conjunction with any other antenna or transmitter except in accordance with FCC multi-transmitter product guidelines. In applications where the included antenna is not optimal, the FCC allows the use of another antenna provided the combined gain of the antenna and cabling are below the limits listed below. · 3.67 dBi in 700 MHz, i.e. LTE FDD-12 band · 6.74 dBi in 1700 MHz, i.e. LTE FDD-4 band · 7.12 dBi in 1900 MHz, i.e. LTE FDD-2 band 2.6 1-Wire Bus Connections Many modules in the X-4xx Series have a 1-Wire Bus. This port which supports up to 16 digital sensors for measuring temperature, humidity and more. (Note that the X-406 has four 1-Wire channels, with each channel supporting up to 16 sensors for a total of up to 64 sensors). The sensors share the same three connections for communications and power (5Vo, Data, and Gnd). Every sensor on the bus is assigned a unique serial number when it is manufactured. That number is used to address the sensor during communication. The digital temperature sensors are interchangeable and require no calibration. See Optional Accessories for a list of compatible 1-Wire sensors. Most temperature probes compatible with ControlByWeb modules have a measurement range of -67°F to +257°F (-55°C to +125°C) and an accuracy of +/-0.5°C (-10°C to +85°C). A full list of compatible temperature/humidity sensors are listed on our website. The temperature sensors have three wires as shown below: Sensor Wire Color Red Black Blue, White, or Yellow Connection 5Vo Gnd Data 2.6.1 Extending Temperature Sensors Many factors can determine the maximum length of the Page 30 Xytronix Research & Design, Inc. X-4xx Series Users Manual cable, including the sensor network topology, the type of cable used, the number of sensors and ambient electromagnetic noise. Multiple sensors can be connected to the module in two ways: directly connected (star topology) or "daisy chained" (linear topology), as shown below. Combined cable lengths to all sensors of 600 ft using Cat 5e cable have been successful; however, due to the uniqueness of installation environments, results may vary. Please test in the desired environment before making a permanent installation. The following are general recommendations that will maximize sensor runs and minimize problems: · Use small gauge 3-conductor wire (Cat 5e, 18-3 thermostat wire, etc). · Cat6 wire can be used, but Cat 5 and Cat 5e network cable is recommended, and has proven to be an effective and low-cost solution for long runs. Cat 5e is more tolerant of different wiring configurations. · Non-shielded works best for longer runs (extra capacitance of shielded wire limits run length). · The 1-Wire Bus is "single-ended" and has no intrinsic noise protection. It is susceptible to interference if the cable is routed near power lines, fluorescent fixtures, motors or other noise sources. Keep the cable wiring short and avoid routing it near other electrical equipment. The illustration below shows the recommended connection using Cat 5 network cable. Connect all unused conductors to ground on the module. A linear (daisy chain) topology will minimize signal reflections, providing a more reliable connection and will allow longer cable length than a star topology. Recommended daisy chain topology connections using Cat5 cable. Xytronix Research & Design, Inc. Page 31 X-4xx Series Users Manual 2.7 Relay Connections Relays can be controlled with a web browser, timers, input changes, or programmable logic. The relays vary in size and configuration. Some modules share common terminal connections between relays (the X-410 for example) with the contacts internally connected together. Some modules have contacts that are completely isolated. The internal relays can be used to operate indicator lights, interposer relays, and other low voltage devices. The screw terminals are internally connected directly to the relays with no internal fuse or other over-current protection. The relay contacts are isolated from all other circuits. The relay contacts may be wired in series with the power source for the load (device to be controlled) as long as the load does not exceed the maximum current and voltage rating of the relay contacts. When using multiple relays in the X-410, make certain the common for all loads can be connected together without causing damage or a short circuit. For loads greater than a relay's specifications, an external interposer relay should be used. The illustration below shows how a 15-Amp motor can be controlled using an external relay. In the example, the X-410's 1-Amp relay controls the external relay, and the external relay controls the 15-Amp load. Page 32 Xytronix Research & Design, Inc. X-4xx Series Users Manual When mechanical relays switch inductive loads such as motors, transformers, electro-mechanical relays, etc., the current will arc across the internal relay contacts each time the contacts open. Over time, this causes wear on the relay contacts which can shorten their life span. When switching an inductive load, it is recommended that relay contact protection devices are used. Note that the X-4xx Series modules do not provide relay contact protection in order to provide the greatest versatility and because appropriate protection differs for various loads. Below is an example of relay contact protection for a DC circuit and an AC circuit. For component values required to provide sufficient contact protection for your application, refer to appropriate references. Xytronix Research & Design, Inc. Page 33 X-4xx Series Users Manual 2.8 Digital Input Connections Several of the modules in the X-4xx Series have digital inputs. Digital inputs are binary with on/off states where the presence of an input voltage is "on" and the absence of a voltage is "off". The inputs use photo-coupler circuits to keep internal and external voltages isolated. The digital inputs can be used to control the internal relays, control remote relays (over the network), or simply to monitor the state of a discrete device. To use these inputs, connect a DC control voltage directly to the inputs, and set up the function of the input using the configuration pages. If an AC signal, or a signal greater than the rated input voltage needs to be detected, use a signal conditioner to convert the signal to a DC signal within the input range. With the X-408, the negative inputs of the photo-couplers are paired together with two inputs sharing one screw terminal. With the X-410, the digital inputs are not isolated and share a common ground with the power connection. DC Input Connections Each digital input is connected internally through a current-limiting resistor directly to a photo-coupler circuit. No external resistor is necessary as long as the input signal is within the proper range (See Appendix D: Specifications). A DC voltage can be reduced with an external resistor of the appropriate value and power rating to reduce the input current. The digital input has an internal 3K ohm resistor. The forward voltage drop of the photo-coupler is approximately 1.2V and works well with an input current of 9mA. Use the following formula to determine the resistor value needed for other voltage ranges: R =((Vin-1.2)/0.009)-3000 Where: R = External resistor value required Vin = Desired input voltage 1.2V = forward voltage drop of the LED in the photo-coupler .009A = workable LED current 3000 ohm = Internal resistor For example: To connect a 48VDC signal voltage to the X-410: R = ((48-1.2)/0.009)-3000 = 2200 ohms Check the power dissipated by the resistor: P = I x I x R, The resistor must be at least .009 x .009 x 2200 = 0.18 Watts, so use a 1/2 Watt resistor. 2.8.1 Switch-Closure Connections The digital inputs can sense the state of a switch-closure sensor. Sensors with switch-closure outputs include push buttons, magnetic door alarm switches, micro-switches, or any device which has a relay, switch-closure, or open-collector output. The X-4xx modules can be configured for the alarm to be active when the switch is either open or closed. The illustration below shows an example of using an X-410 to monitor the status of a gate or door over an IP network. The status of the device is detected with a switch. These types of sensors are called "dry Page 34 Xytronix Research & Design, Inc. X-4xx Series Users Manual contacts" in that the sensor output is a bare switch with no power source. In this example the voltage source for the switch is provided via the +5V output. Some modules don't have a 5V output that can be used to power dry contacts. Additionally, for long wire runs it is better to use a higher voltage like 12V or 24V to compensate for voltage drop across the wires. The illustration below shows how to use the same power supply to power the X-4xx module and the dry contact. When using modules that are powered using POE (Power Over Ethernet), the 5V output can be used for short wire runs on modules that provide that output. For longer wire runs or for modules that don't provide the 5V output, a separate power supply will be required to "wet" the contacts as shown below. Xytronix Research & Design, Inc. Page 35 Multiple dry contacts can use the same power supply as shown below. X-4xx Series Users Manual 2.8.2 Water Leak Detector Example A GRI-2605 water leak detector can be directly connected to the X-4xx Series module such as an X-408 or an X-410. The sensor detects the presence of water or other conductive liquids. The sensor has 4wires which are connected as shown below. The GRI-2605 has an internal relay whose contacts (green & white wires) are closed when the sensor is dry. When the sensor is dry the digital input will be "On". When water is detected, the relay contacts open and the digital input will be "Off". With the connections shown, the sensor is a supervised alarm circuit such that if a wire is disconnected or the sensor fails, an alarm will be generated. The X-4xx module can be programmed to activate a local relay, activate a relay at a remote location, and send an e-mail warning when a water leak is detected. After installation, test the sensor with a damp sponge or wet towel. Page 36 Xytronix Research & Design, Inc. X-4xx Series Users Manual 2.8.3 AC Input Connections If an AC signal voltage needs to be detected, use a signal conditioner to convert the AC signal to a DC voltage within the input range. An AC signal conditioner can be made using a diode (or bridge rectifier) and a capacitor. Prepackaged signal converters are available as accessories at industrial automation distributors. A simple voltage converter module (RedLion VCM10000 or VCM20000) is shown below. These are available in two input voltage ranges that cover the range from 4-270VAC/DC. These devices have a MOSFET output (solid state DC contact closure) which is compatible with the X-4xx inputs. The converter module accepts AC (50/60 Hz) or DC voltages with an input pulse rate up to 30 Hz. The converter provides isolation between the input and output using an opto-isolator. You must provide a voltage source for the converter circuit as shown in the example below: Xytronix Research & Design, Inc. Page 37 X-4xx Series Users Manual 2.9 Analog Input Connections The X-418 features a high performance, 8-channel, 16-bit analog data acquisition system. The X-420 has four of the same analog inputs. The inputs are high impedance (>500 Meg ohms.) Each channel is configurable for single-ended or differential operation. Programmable voltage ranges include; ±1.28V, ±2.56V, ±5.12V and ±10.24V and ±20.48V (differential). Four of the channels on the X-418 can be configured for 0-20mA input operation (all four channels on the X-420). The input mode and voltage range is configured in the web-based setup pages. The input impedance is very high and if an input is left unconnected, the voltage measurement will float and drift. The analog inputs work with industrial sensors, wind direction sensors, pyranometers, pressure transducers, and much more. The analog inputs can be configured to send an email, log, or control a remote relay (over the network using peer-topeer communication). 2.9.1 Single-Ended Mode The analog data acquisition system can accept bipolar input signals. Single-ended signals are referenced to the AGnd terminals. Each channel can be independently programmed with a ±1.28V, ±2.56V, ±5.12V, ±10.24V voltage range. Do not share the sensor ground connection with the power supply input terminal. Consider how the sensor(s) are powered, arrange the sensor connections so no current flows in the ground reference connections between the X-418/X-420 and your sensor(s). This illustration is an example of using the X-418/X-420 with a potentiometer position sensor. Potentiometers are a variable resistor with three connections. Typically the 5Vref reference from the module is used to apply a voltage across the potentiometer. The wiper terminal of the potentiometer is connected to any of the analog inputs. Page 38 Xytronix Research & Design, Inc. X-4xx Series Users Manual The illustration below shows an example of using the X-418/X-420 in conjunction with a current to voltage transducer to measure the current draw of a motor. This example uses a current sensor that will measure current up to 20 Amps AC. The sensor produces a linear 0-5VDC output that it can be connected directly to one input of the X-418/X-420. The slope calculation for the setup page is shown below: Slope = (Y2-Y1)/(X2-X1) Slope = (20Amps 0 Amps)/(5 VDC 0 VDC) = 4 Amps/V Enter the calculated slope in the X-4xx setup pages so the current is calculated and displayed properly. 2.9.2 Differential Mode Differential sensors have two outputs that reference each other instead of ground. The differential mode uses two analog inputs instead of one. For example, if Channel 1 is selected for differential operation, the differential signals are connected to Channel 1 and 2. If Channel 3 is selected for differential operation, the differential signals are connected to Channel 3 and 4, and so on. Differential mode supports input ranges of up to ±20.48V. However, the absolute input voltages must be less than ±10V. For example, if Input 1 is configured for differential operation and Input1 = +10V and Input2 = -10V, the measurement will read +20V. On the other hand, if Input1 = -10V and Input2 = +10V, the measurement will read -20V. With differential connections, a ground connection is still required between the module and your sensor to maintain the two input voltages within the common mode voltage range (-10V < Vin < +10V) of the X-418 and X-420. The illustration below shows the connections for a Wheatstone bridge sensor with two output signals. The outputs are connected to Ain1 and Ain2. The X-418/X-420 must be programmed for differential mode on "Ain1". In this example the bridge is excited (driven) by the 5.0V reference output. Xytronix Research & Design, Inc. Page 39 X-4xx Series Users Manual 2.9.3 4-20mA Mode Some industrial sensors output a current instead of voltage levels. Normally, a shunt resistor is needed to measure the current. With the X-418 and X-420, the 4-20mA mode enables an internal precision 200ohm shunt resistor (0.1%, 25ppm) and automatically configures the A/D for ±5V operation. This feature allows direct connection to 0-20mA current loop transducers. At 20mA, the maximum loop voltage across the input is 4.0 Volts (.020 x 200 = 4.0V). With this setting, the voltage-to-current calculation ((Vin/200)*1000) is automatically made so the measurement is in units of mA. When connecting more than one 4-20mA sensor consider using a "star" or single point ground topology. If the output current from one sensor changes or affects the measurements of other sensors (crosstalk), you will need to re-consider your connections. Loop powered current transmitters normally require 7 to 8 Volts across their terminals in order to work properly. With a 200-ohm resistor in the X-418/X-420 the load resistor will drop an additional 4-Volts. Allow 2-volts or so for voltage drops across the wiring, especially if the wires are small or long. For this example make certain your loop power source is at least 14-Volts (8+4+2). 2.9.3.1 Monitor Flow, Distance, or Speed with a 4-20mA Sensor Sensors are available for measuring flow, distance, speed and many other industrial processes. Many sensors employ a 4-20mA analog output. With the built in shunt resistors in the X-418/X-420 these transducers can be connected directly to the X-418/X-420 as described above. Once the components are properly wired, the X-418/X-420 must be configured with the proper Slope and Offset to convert the current measurement into engineering units such as CFS (flow), Meters (distance) or Meters per Second (speed). For linear transducers this is normally done with a Y=mX+b equation. Engineering Value = (Measured Value * Slope) + Offset The documentation for the sensor must be consulted for the calculations. For example, if the range of a laser rangefinder is 1Meters to 100Meters the transducer will output 4mA at 1M and 20mA at 100M. The X-418/X-420 makes measurements in units of mA. To convert this measurement to engineering units the mA measurement must be processed with a Slope setting. The general term for the Slope is: Slope = (Y2-Y1)/(X2-X1) To determine the slope, first determine the minimum and maximum current that will be applied to the X418/X-420. In this example the transducer will output 4mA at 1M and 20mA at 100M. To calculate the slope: Slope = (100M 1M)/(20mA 4mA) = 6.1875 Meters/mA Once the slope is determined, calculate the offset using the Y=mX+b linear equation where b is the offset. 1M = 6.1875M/mA * 4mA + Offset Offset = 1M (6.1875M/mA * 4mA) = -23.75M Page 40 Xytronix Research & Design, Inc. X-4xx Series Users Manual 2.9.4 Pseudo Digital Inputs For applications where digital inputs are needed, specific analog inputs can be configured as a pseudo digital input with a boolean (true/false) state. The input voltage is compared to a fixed threshold to determine a true/false state. The input is considered "true" when the voltage rises above 3.5V and "false" when it falls below 1.5V. The analog inputs cannot process narrow pulses or high frequency input changes. When an analog input is configured as a digital input, the input can be configured to send an email, control a remote relay (over the network), or monitor the state of a discrete device. Note that these Pseudo Digital Inputs do not have the optical isolation that is used in all of the dedicated digital inputs found on other devices in the X-4xx Series. Without the optical isolation these Pseudo Digital Inputs are not protected as well from transient voltage spikes so it is not recommended that these inputs be used with long cables, outdoor cable runs, or electrically noisy environments. The illustration below shows an example of using the X-418/X-420s to monitor the status of a gate or door over an IP network. The status of the device is detected with a simple switch. These type of sensors are called "dry contacts" in that the device output is a bare switch with no power source. In this example a voltage source for the switch is provided by the +5Vref output. A pull-down resistor must be provided to drive the input to a known state (0V) when the switch is open. In this example the measurement voltage will be 5.0V when the switch is closed and 0-V when the switch is open. Xytronix Research & Design, Inc. Page 41 X-4xx Series Users Manual 2.10 Digital I/O (X-420 Only) The Digital I/O's can be individually programmed to function as either inputs or outputs. The digital I/Os employ 5V logic, are not isolated and share a common ground with the power connection. 2.10.1 Digital I/O Configured as Inputs When a Digital I/O is configured as an input, the input can be configured to send an email, control a remote relay (over the network), monitor the state of a discrete device, or one input can control the other output. The digital inputs work with sensors with switch-closure outputs including push buttons, magnetic door alarm switches, micro-switches, or any device which has a relay, switch-closure or open-collector output. The inputs can be configured for the alarm to be active when the switch is either open or closed. The illustrations below show an example of using the X-420 to monitor the status of a gate or door over an IP network. The status of the device is detected with a switch. Pull Resistor When configured as an input, an internal pull-up or pull-down resistor can be selected in the settings. If no connections are made to the input, the pull-up resistor will pull the input high (on), and the pull-down resistor will pull the input low (off). The illustrations below show how the pull resistors work with simple single pole switches connected to the digital inputs. For a high-side switch, one side of the switch is connected to the +5V output and the other to I/O 1 or I/O 2. Select the pull-down resistor. When the switch is open, the pull-down resistor pulls the input low (Off). For a low-side switch, one side of the switch is connected to ground and the other to I/O 1 or I/O 2. Select the pull-up resistor. When the switch is open, the pull-up resistor pulls the input high (On). Page 42 Xytronix Research & Design, Inc. X-4xx Series Users Manual 2.10.2 Digital I/O Configured as Outputs When a Digital I/O is configured as an output, it can be used to supply a voltage to an external relay or device. The example below illustrates how the output can be used to actuate an external solid state relay. Note that a solid state relay is used because most electro-mechanical relays would require more current than these digital outputs can provide. 2.11 Frequency Input (X-420 Only) Sensors that output pulses can be connected to the Frequency Input. The input is AC coupled and is designed for direct connection to a magnetic wind speed sensor. Magnetic wind speed sensors output a low voltage sine wave at low wind speed, as the wind speed increases both the voltage and frequency increase. The frequency input works with other sensors compatible with an AC input. For example, a 6VAC or 12VAC transformer can be used to measure the AC line frequency or the output frequency of a generator. Xytronix Research & Design, Inc. Page 43 X-4xx Series Users Manual 2.12 Network Connection X-418 and WebRelay shown. Same concept applies to all ControlByWeb devices. Connect the Ethernet port to a standard 10/100/1000 Base-T Ethernet connection. The module typically connects to an Ethernet switch, or router. For configuration, the module may be connected directly to the Ethernet port on a computer or through a switch or router. The module supports auto negotiation and will work with either crossover or straight-thru cables. It can be also used on a wireless network by connecting through an Ethernet bridge or a wireless router. X-418 device shown. Same concept applies to all ControlByWeb devices. Note: The wireless Ethernet bridge or router must be properly configured for the wireless network. Refer to the installation instructions for the wireless device. 2.13 System Start Up At power-up, the green Power LED should be illuminated. The X-4xx Series modules require 10 to 15 seconds to startup before being accessible over the ethernet. Xytronix Research & Design, Inc. Page 45 X-4xx Series Users Manual 2.14 Establishing Communications for Setup In order to configure the X-4xx Series modules with their built-in web interface, the module must be connected to an Ethernet network. This can be done by one of two methods: Method 1 Temporarily change the IP address of a connected computer to be compatible (same subnet) with the default IP address used by the module. Note: If multiple ControlByWebTM devices are used on the same network, install one at a time and set the IP address of each unit before connecting the next unit to the network. This avoids having multiple devices being installed on the network with the same factory default IP address at the same time. If this approach is used, be sure to clear the arp cache after disconnecting each unit (run 'arp -d ' from an administrative command prompt). -or- Method 2 Assign a temporary IP address to the module to work on an existing network. 2.14.1 Method 1: Assign a Temporary IP Address to the Configuration Computer By default, the X-4xx Series modules come from the factory with an IP address of 192.168.1.2. Communication with the module may be established by assigning an IP address to the configuration computer so that it is on the same logical (and physical) network as the module (for example, the configuration computer could be assigned to an IP address of: 192.168.1.50) The following example is for those running the Windows-8 operating system: 1. Apply Power, wait 15 seconds for the module to become operational, and then connect the Ethernet cable. 2. Open the Windows 8 start screen. 3. Type "Control Panel" and press enter (the search box opens automatically when you begin typing). Xytronix Research & Design, Inc. Page 47 4. Select View network status and tasks. X-4xx Series Users Manual 5. Select Change adapter settings Page 48 Xytronix Research & Design, Inc. X-4xx Series Users Manual 6. Your machine may have more than one Internet connection shown. Right-click on the adapter for your connection to the Internet. A drop-down box will appear, choose Properties to view/edit the settings for this internet connection. 7. Select Internet Protocol Version 4 (TCP/IPV4) and then click the Properties button. Xytronix Research & Design, Inc. Page 49 X-4xx Series Users Manual 8. If "Use the following IP address" is already selected, the computer has been setup with a static IP address. Record these values so that the current IP address of the computer can be restored once the IP address of the module has been successfully changed. Select the radio button labeled "Use the following IP address" and type in the IP address: 192.168.1.50 Type in the subnet mask: 255.255.255.0 No need to change the default gateway field. Click OK to accept the new settings. 9. Open the setup pages by entering the following URL in the address bar of a web browser: http://{ipaddress}/setup.html (For example: http://192.168.1.2/setup.html) If the setup pages are not accessible, verify that the module is powered on and that the LINK light is illuminated. Check all network connections and settings. Another way to check communications is to ping the module from the command prompt by typing: ping [ipaddress] (e.g. ping 192.168.1.2) Page 50 Xytronix Research & Design, Inc. X-4xx Series Users Manual 2.14.2 Method 2: Assign a Temporary IP address to the X-4xx Series module This option (arp ping) is used to TEMPORARILY assign an IP address to the module without the need to change the IP address of the configuration computer. The module will use this IP address as long as power is maintained. Once power is lost, the module will use the IP address assigned in the setup page and not the temporary address assigned here. Make sure that the module and the configuration computer are connected to the same network. Since ARP is non-routable, this will not work through routers or gateways. Microsoft Windows Instructions 1. Open a Command Prompt (select START, then RUN, then type "cmd"). Note: For Vista, 7, 8, and 8.1, the Command Prompt should be run as administrator (select Start, then type "cmd" and right click on "cmd" and select "Run as administrator"). 2. Type: arp -s {new IP address} {serial number of the ControlByWeb device } Note: IP address format is xxx.xxx.xxx.xxx. The serial number can be found on a label on the device board. The format is ss-ss-ss-ss-ss-ss. 3. For example, to set the module (with serial number 00-0C-C8-01-00-01 ) to 10.10.10.40 the following command would be used: arp -s 10.10.10.40 00-0c-c8-01-00-01 4. Next, type: ping -l 102 {new IP address} For example, if the new IP address is 10.10.10.40, the following command would be used: ping -l 102 10.10.10.40 5. Proceed with the module's setup in Section 3. Once setup is complete, it may be necessary to clear the 'arp' cache to configure additional ControlByWeb devices. This is necessary because each device has the same default IP address, but a different unit serial number (MAC address). Clearing the arp table can be done by typing arp -d in the command prompt window. Linux/Unix Instructions 1. Open a terminal and change to root user (su -, then enter root password). 2. Type: arp -s {new IP address} {serial number of the ControlByWeb device } Note: IP address format is xxx.xxx.xxx.xxx. The serial number can be found on a label on the device board. The format is ss:ss:ss:ss:ss:ss. For example, to set the module (with serial number 00-0C-C8-01-00-01) to 10.10.10.40 the following command would be used: arp -s 10.10.10.40 00:0c:c8:01:00:01 3. Next, type: ping -s 102 {new IP address} For example, if the new IP address is 10.10.10.40, the following command would be used: Xytronix Research & Design, Inc. Page 51 ping -s 102 10.10.10.40 4. Proceed with the module's setup in Section 3. X-4xx Series Users Manual Once setup is complete, it may be necessary to clear the 'arp' cache to configure additional ControlByWeb devices. This is necessary because each device has the same default IP address, but a different unit serial number (MAC address). Clearing the arp table can be done by typing sudo arp -d -a in the command prompt window. Mac OS X Instructions 1. Open a terminal. Note: The terminal is in the "Utilities" directory, which is in the "Applications" directory. 2. Type: sudo arp -s {new IP address} {serial number of the ControlByWeb device } Administrator password may be required. Note: IP address format is xxx.xxx.xxx.xxx. The serial number can be found on the label on the device board. The format is ss:ss:ss:ss:ss:ss. 3. For example, to set the module (with serial number 00-0C-C8-01-00-01 ) to 10.10.10.40 the following command would be used: sudo arp -s 10.10.10.40 00:0c:c8:01:00:01 4. Next, type: ping -s 102 {new IP address} For example, if the new IP address is 10.10.10.40, the following command would be used: ping -s 102 10.10.10.40 5. Proceed with the device's setup in Section 3. Once setup is complete, it may be necessary to clear the 'arp' cache to configure additional ControlByWeb devices. This is necessary because each device has the same default IP address, but a different unit serial number (MAC address). Clearing the arp table can be done by typing sudo arp -d -a in the command prompt window. Page 52 Xytronix Research & Design, Inc. X-4xx Series Users Manual Section 3: Web Server and Setup Pages The internal web server presents two classes of web pages; Setup pages and Control pages. Setup pages are used by an installer to provision and configure the module, and a limited version of Setup pages can be used by a Manager to create and manager scheduled tasks. The Control page allows the local and remote I/O to be monitored and controlled. To access the setup pages (for admin or manager login), enter the following URL in the address bar of a web browser: http://{ipaddress}/setup.html For example, using the default IP address, enter: http://192.168.1.2/setup.html To access the Control Page, enter the following URL in the address bar of a web browser: http://192.168.1.2 To access any web pages over an encrypted connection replace http with https. For example: https://192.168.1.2/setup.html https://192.168.1.2 Before accessing any setup page, the browser will request a username and password. The X-4xx Series modules support various levels of user authentication with different permissions to the setup pages. For a description of Administrators, Managers and Users see General Settings Tab > PASSWORDS.The Administrator username is admin and the default password is webrelay (passwords are case sensitive). For Manager access the username is manager and the default password is webrelay. No password is required by default to access the control page. The setup pages are divided into six sections. Sections with a symbol can be expanded to reveal other related settings. When using the Setup Pages, you must click the Submit button at the bottom of a page if you have made changes to a setting on the page. 3.1 Setup Strategy To configure the X-4xx Series module, follow these basic steps (each of these steps will be discussed in more detail in the next sections): Step 1: Edit the Network settings to make the module accessible on your network (IP address, gateway and DNS Server IP addresses, etc.). Also setup any email addresses that will be needed for alarms and messages. The device must be power cycled for these settings to take effect. Step 2: Add any external devices that should be monitored and/or controlled from the module. Step 3: Name and configure the I/O resources (i.e., relays, inputs, registers, timers, etc.) under the I/O Setup menu. Step 4: Define any control logic (tasks) or Basic scripts under the Control/Logic menu. Finally, setup and configure the Control Page under Monitor & Control to show the information and control buttons needed for your specific application. Step 5: View and test the Control Page where you can monitor your local and remote I/O and experiment with any buttons or controls. Test for proper operation of email/text messages and alarms. Xytronix Research & Design, Inc. Page 53 X-4xx Series Users Manual 3.2 General Settings Tab. The General Settings tab is a collection of menus for configuring the IP network settings, email server settings, device configuration backup and restore features, etc. 3.2.1 General Settings Tab > GENERAL INFORMATION This is the initial page that is displayed when "/setup.html" is entered into the address bar of the browser. It displays the part number, firmware revision, and serial number of the unit. The optional latitude and longitude settings are used for calculating sunrise and sunset times for Scheduled Tasks. A global setting selects the temperature units. (Used for remote temperature sensors.) Part Number This displays the full model number of the module. Firmware Revision This is the current product revision of the device's firmware. Serial Number This is the serial number of the module. The serial number is also the MAC address. Vin Voltage This is the voltage on the +Vin power input terminal. If the module is powered from a battery, this value will show the battery voltage. Internal 5V Voltage This diagnostic displays the voltage of the internal 5V power rail. It should be 5.0V ±.25V. Network Interface In Use (X-400C and X-404C Only) This displays which network interface (Ethernet or Cellular) was used to retrieve the General Information setup page. Latitude & Longitude The optional latitude and longitude settings are used for calculating sunrise and sunset times for Scheduled Tasks. This is entered in degrees.decimal degrees format (does not use minutes and seconds). North Latitude is positive and South is negative. East of the prime meridian is positive and West of the prime meridian is negative. Temperature Units This global setting sets the temperature units of Fahrenheit, Celsius, or Kelvin for all temperature sensors, both local and remote (Some ControlByWeb devices do not have a 1-Wire bus for local temperature sensors; however, they do support remote 1-Wire sensors). Page 54 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.2.2 General Settings Tab > NETWORK SETTINGS The network parameters are set on this page. Configure the network settings to make the X-4xx Series module accessible on your network. The module must be power-cycled (power disconnected, then reconnected) before new network settings take effect. Use DHCP (Dynamic Host Control Protocol) This option allows DHCP to be enabled or disabled. If this option is set to Yes, the module will request an IP address from the DHCP server each time it is powered on. The default setting is No (this is recommended for most installations). If DHCP is set to Yes, the Network page must be submitted and the module must be rebooted before an IP address will be assigned. Once the module is assigned an IP address by the DHCP server, the new IP address can be found through the list of clients kept by the DHCP server. Brief Notes About DHCP: All devices on an IP network require an IP address. This is a unique address that identifies each device on the network. DHCP is a mechanism that automatically assigns an IP address to a computer (or other device) when it is connected to a network. This eliminates the need to manually enter the IP address. When a computer is connected to the network, another device on the network called a DHCP server detects the presence of the computer or device and dynamically assigns an IP address. On many small networks, the DHCP server is built into the router. DHCP works well for "client" devices such as computers, but is not ideal for servers. This is because servers usually don't initiate communications with other devices, but rather they wait for a request from "clients." To make this request, the client must know the IP address of the server. If a server gets its IP address dynamically, the IP address may not always be the same so client devices may not be able to find the server. For this reason, servers usually use an IP address that is fixed and does not change. The module is a server and manual IP address assignment is usually recommended. Xytronix Research & Design, Inc. Page 55 X-4xx Series Users Manual IP Address Enter the IP address for the module in this field. The IP address is specific to the network where the module will be installed, and must be obtained from the network administrator. For more information on IP addresses and remotely accessing the module over the Internet, see Appendix C: Accessing the Device Over the Internet. The default setting for this field is: 192.168.1.2 Subnet Mask The subnet mask defines the size of the local network. This can be obtained from the network administrator. For additional information about sub-netting and IP networking, many tutorials are available on the Internet. The default setting for this field is: 255.255.255.0 Gateway This specifies the IP address of the gateway router. This can be obtained from the network administrator. The default setting for this field is: 192.168.1.1 Preferred DNS Server: The IP address of the Primary DNS server is specified here. When DNS services are required, this is the address that will be used. The default setting for this field is 192.168.1.1 This field is only required when the following options are used: Remote Services Sync time clock with remote NTP server Email Server SNMP Manager Remote Devices When server is specified by name and not IP address. When server name is specified by name and not IP address. When server name is specified by name and not IP address. When the server for receiving traps and notifications is specified by name and not an IP address. When remote device (such as for use as a remote relay) is specified by name and not IP address Page 56 Alternate DNS Server This field is used to specify the IP address of a Secondary DNS server. This is used when the module requires DNS services and the preferred DNS server is not available. The default setting for this field is 192.168.1.1 HTTP Port Enabled This option enables or disables access to the web server without encryption. For high security applications the HTTP port should be disabled to limit access to only encrypted connections on the HTTPS port. HTTP Port The TCP port used for unencrypted HTTP communications with the module is specified here. The default setting for this field is 80, which is the standard HTTP port. It is recommended that the port be left unchanged unless the user has an understanding of TCP/IP and ports. For more information on TCP ports and IP addressing see Appendix C: Accessing the Device Over the Internet. HTTPS Port The TCP port used for encrypted HTTPS communications. It is recommended not to change this port. When requesting a web page using https://192.168.1.2/setup.html, the web browser will automatically use port 443. If this port is changed to 9000 for example, the HTTPS port will have to be specified in the request https://192.168.1.2:9000/setup.html Xytronix Research & Design, Inc. X-4xx Series Users Manual Upload/View SSL Certificate By default, the module comes with a previously generated SSL Certificate that is used for encrypted HTTP communications. The default SSL Certificate can be replaced by clicking on this link, choosing the new Certificate file (PEM format), and uploading the file. SSL Certificates are preserved, even when resetting defaults and updating firmware. Note: Supports 1024-bit and 2048-bit encryption. Upload/View SSL Key File By default, the module comes with a previously generated SSL Key that is used for encrypted HTTP communications. The default SSL Key can be replaced by clicking on this link, choosing the new Key file (PEM PKCS#1 format), and uploading the file. SSL Keys are preserved if the firmware is updated or the module is reset to its default settings. There are various programs that can be used to generate self-signed certificates and keys. When generating the key, the program must either generate the key in PKCS#1 format, or provide a way to convert it to the PKCS#1 format in order for the module to use it. One such program is openssl. Newer versions of openssl generate keys using the PKCS#8 format. Older versions generated keys using the PKCS#1 format. A visual inspection of the key file can be a good indicator of the format of the key. PKCS#1 keys start with " -----BEGIN RSA PRIVATE KEY-----". PKCS#8 keys start with "-----BEGIN PRIVATE KEY-----". The following command can be used to generate a key and certificate for use with the module: openssl req -newkey rsa:1024 -nodes -keyout domain.key -x509 -days 365 -out domain.crt If the format of the key is PKCS#8, the following command will convert it to PKCS#1: openssl rsa -in domain.key -out domain_PKCS1.key After executing the previous commands a key named domain_PKCS1.key and certificate named domain.crt will exist. Xytronix Research & Design, Inc. Page 57 X-4xx Series Users Manual 3.2.3 General Settings Tab > ADVANCED NETWORK SETTINGS CORS Origin CORS stands for Cross-Origin Resource Sharing. By default web-pages rendered in a web browser can only request other web-pages from the same server, not a server at another domain or IP. This is a security feature. To allow such requests to an X-400 Series device, enter the protocol, domain, and port of the remote server that should be given access. For example, to allow the www.ControlByWeb.com site direct access to web pages on the X-400 Series device, enter http://www.ControlByWeb.com in the CORS Origin field. If using HTTPS instead of HTTP, enter https://www.ControlByWeb.com. Leaving this field blank, the default, will disable cross origin web requests to the device. Entering an asterisks (*) will allow any remote service to send direct requests for resources. MTU MTU is the Maximum Transmission Unit network parameter. This defines the max size, in bytes, of the TCP packets sent out from the device. The valid range is 256 to 1476 bytes. This normally can be left alone, but there are some circumstances where it might be beneficial to change it. One of these circumstances is when the device is to be used over a VPN (virtual private network). VPN's add extra information to TCP packets, if the new packets are too big to physically travel across the network (greater than about 1500 bytes) then the packets will be split up. This causes problems for some firewalls and those firewalls will discard the packets. To fix this, the MTU can be adjusted until the TCP packets do not get split up. Some cellular data networks use smaller packet sizes and MTU adjustment may be necessary. MODBUS (TCP/IP Slave) MODBUS/TCP slave service can be enabled or disabled. This setting is ONLY used to enable/disable Modbus TCP/IP slave functionality only and does NOT control the RS-485 Modbus master functionality on the X-404 module. Modbus is a messaging structure protocol used in industrial control and automation. It is an open protocol and offers interoperability with software and devices from other manufacturers. This is enabled by selecting Yes in this field. The default setting for this field is No. (See Section Modbus/TCP (slave) for more information on using the X-4xx Series module on a Modbus network.) Page 58 Xytronix Research & Design, Inc. X-4xx Series Users Manual Note: Modbus communications are disabled whenever the User password is enabled because Modbus/TCP does not provide a mechanism for password protection. The X-4xx Series modules function as a Modbus slave. Host devices, such as PLCs, open a connection with the module on port 502 and then sends requests to read or set I/O states, or sensor values. When the module receives a command, it performs the desired function and returns a response. Modbus Port This specifies the port used for Modbus/TCP communications with the module. By default this is set to port 502 which is the standard Modbus port. It can be set within the range of 1 to 65535. Endianness 32-bit data is treated as two individual, 16-bit words using IEEE 754 floating point format. Floating point format is used for all analog sensors, both local and remote. If Big is selected, the module will use big-endian architecture, and the most significant 16-bit word (big end) is sent first. If Little is selected, then the module will use little-endian architecture, and the least significant 16-bit word (little end) is sent first. The default setting is Little (little-endian). For example, in little-endian format, a 32-bit floating point number represented by '1234 ABCD' is sent as 'CDAB 3412'. Modbus Address Table The module has a default Modbus address table with addresses for the local I/O and Vin. As resources such as Registers, and remote I/O are added, additional Modbus addresses are automatically created. Use this tool to view the current Modbus address assignments. The addresses are assigned when the I/O is added and cannot be customized except by deleting the I/O and changing the order in which they are added. To interpret the Modbus Address Table, find the I/O resource in the left-most column. Then follow the line across to the column of interest. All I/O resources have a corresponding holding register pair for reading the values. This holding register address is listed in the IO column of the table and is interpreted as a IEEE-754 floating-point value. The number in the cell is the Modbus address for the given data type (or starting address in the case of floating point numbers). On the module, all holding registers are read and written as pairs. This is because Modbus registers are 16-bits wide and the data types for reading the registers are floating point and require 32-bits. The number listed in the table is the starting address and the corresponding register immediately follows it. This example table shows the Modbus addresses of the I/O resources and a configured register. This images shows Modbus address examples for the X-418. Other products tables will differ depending on the device's I/O. Xytronix Research & Design, Inc. Page 59 X-4xx Series Users Manual Remote Services Remote Services allows internet access to an X-4xx Series device which is installed behind a network router, without the need to setup port forwarding in the router. Typically, when Remote Services is enabled it is used to access the device through our ControlByWeb.cloud service rather than connecting directly to the device. Remote Services has three main benefits: First, the web server does not need to know the IP address of the X-4xx Series module. This means that the module can get its IP address dynamically from a DHCP server, simplifying the installation. Second, since the connection from the module is outgoing, rather than incoming, the local router on the network where the module resides does not need to be configured to forward ports. This simplifies the installation. Since the router configuration is not modified, the risk of compromising security on the local network is eliminated. For more information about the Remote Services see Section Using an External Web Server. Third, connecting to ControlByWeb devices through the ControlByWeb.cloud service allows users to take advantage of additional features and services that are offered on the cloud service such as custom user interfaces, viewing multiple devices at that same time, and providing alerts to the user when the connection goes down. Enable Remote Services can be enabled or disabled. If Yes is selected, Remote Services will be enabled as soon as the Submit button is pressed and X-4xx Series module will immediately attempt to make a connection with the remote server (power cycle not required). Once a connection is established, the connection will remain until it is disconnected by the remote server. By default, Remote Services is configured to connect to the ControlByWeb.cloud service. The default setting for this field is No. Version Previous ControlByWeb products supported version 1 of remote services. Choosing version 1 will allow X-4xx Series devices to connect to third party remote services servers. Version 2 of remote services adds some enhancements to the remote services protocol including encryption and client/server authentication. Version 2 is used with the ControlByWeb.cloud service. Certificate Request Method Remote Services version 2 use certificates and keys to provide a secure connection between the X4xx modules and the server. Certificates are created on the ControlByWeb.cloud server and must Page 60 Xytronix Research & Design, Inc. X-4xx Series Users Manual be transferred to the module for secure communications. There are two methods that can be used to retrieve the certificates and key from the ControlByWeb.cloud service. First, the username and password of the ControlByWeb.cloud service account can be used. Second, a temporary token can be generated on the ControlByWeb.cloud server by the account holder and copied to the module. If a username/password or certificate request token is present when the setup page is submitted, the module will request the certificate, ca, and key from the cloud server. Once the certificate, ca and key are successfully retrieved, the username/password and certificate request fields will be cleared out so those fields will be blank. Cloud Username/Password To obtain the certificate using the method, enter the username and password of the cloud service account. Certificate Request Token This method is useful for installations where X-4xx Series products are installed by a someone other than the owner of cloud account. In this case, the owner of the cloud account can generate a Certificate Request Token from the ControlByWeb.cloud web site. That token can be copied, and given to the installer rather than the username and password to the account. The installer would enter the token in this field on the X-4xx Series module to setup the cloud connection. The installer can use this token for a fixed time period (12 hours). The installer will be able to connect modules to the account but he/she will have no access to the account. Advanced Features The following features do not generally need to be changed, especially when using the device with the ControlByWeb.cloud service. They can be changed if the device is used with a custom service. Server Name/IP Address Specify the name or IP address of the Remote Services server here. If the IP address is specified, enter it in this format aaa.bbb.ccc.ddd. For numbers that are less than 100, preceding zeros should not be included (for example, enter 80 rather than 080). This field can be up to 40 characters long, the default setting is: devices.controlbyweb.cloud Server Port Enter the TCP port used for the Remote Services server. This can be set within the range of 165535. The default setting for this field is 8000. Connection String This text is sent to the Remote Services server when the connection is established. This string Xytronix Research & Design, Inc. Page 61 X-4xx Series Users Manual should include any information required by the server for connection. For example, it may include an ID number, customer number, password, etc. The format is entirely dependent upon the server requirements. This field can be up to 80 characters long. By default this field is left blank, as the ControlByWeb cloud service does not use it. Connection Interval This field specifies the periodic interval in which the X-4xx Series module attempts to connect to the remote server, or if the module is already connected, it is the interval in which it sends the connection string followed by the current state of the device. This field can be set within the range of 1 to 60 minutes. The default setting for this field is 1 minute. Certificate Server Port The certificate server is a server that has been configured to deliver the Client Certificate, Key, and CA when requested by the X-4xx Series module. These certificates and key are required for the module to connect to the cloud service. This field specifies the port used to communicate with that server. Upload/View Client Certificate Uploads a client certificate that will be used for authenticating the X-4xx Series module to the cloud service. Upload/View Client Key Uploads a client key that will be used for encrypting the module's communications with the cloud service. Upload/View Client CA Uploads a CA that has been used to generate the client certificate and key. The X-4xx Series module will use this certificate to verify that the server it has connected to is the server that it expects to connect to. SNMP AGENT The SNMP agent is the server running on the X-4xx Series module responsible for receiving SNMP requests and returning SNMP responses. SNMP Managers are remote servers that the module can send SNMP Trap and Notification messages to. The Agent is always enabled when SNMP is enabled. The SNMP Managers can be enabled/disabled separately. When using SNMP V3, the module supports the User-based Security Model (USM). Page 62 SNMP Enabled SNMP (Simple Network Management Protocol) can be enabled or disabled. The default setting for this option is No. (See SNMP at the end of this section for more information.) SNMP Version Xytronix Research & Design, Inc. X-4xx Series Users Manual The module supports versions V1, V2c, and V3. This option allows choosing what version of SNMP will be used, and will determine what SNMP options are presented. The module will only respond to SNMP requests that use the selected SNMP version. Agent Settings: Agent Port When SNMP is used, this field is used to specify the SNMP port that the module's SNMP Agent listens on. The default setting for this field is 161. Agent Read Community The read community string is used for SNMP V1 and V2c requests. It is required to read I/O on the device using SNMP V1 or V2c. Agent Write Community The write community string is used for SNMP V1 and V2c requests. It is required to write I/O on the device using SNMP V1 or V2c. Notification Retries When sending notifications, this field defines how many attempts the module will make to send the notification to the SNMP Managers. Notifications differ from Traps in that a response is expected back from the SNMP Manager. Notification Timeout When sending Notifications, this field defines how many seconds the module waits for a response to a previously sent notification before attempting to send the notification again. Manager Settings: Manager Enable An SNMP Manager is the server intended to receive traps and notifications from the module. The module supports sending traps and notifications to two different SNMP managers. The default setting is No. Manager Hostname/IP This field is used to specify the hostname or IP address of the SNMP manager. The default setting for this field is 192.168.1.15 Manager Port This field is used to specify the SNMP Trap or notification port of the SNMP manager. The default setting for this field is 162. Manager 1 Community This field is used to defined the Trap/Notification community string used by the SNMP Manager for SNMP V1 and V2c. The SNMP manager will not accept the Trap/Notification without a correct community string. MIB File This button generates the Management Information Base (MIB) used for managing the entities in a communication network associated with the SNMP protocol. The file will be automatically generated and downloaded. This file will change as the I/O configured on the device changes or as the SNMP version changes. Xytronix Research & Design, Inc. Page 63 X-4xx Series Users Manual SNMP V3 Security Settings: The following settings appear when the SNMP version is set to Version 3. These settings configure the authentication and privacy protocols used by SNMP V3 User-based Security Model (USM). The Agent, and both SNMP Managers each have their own set of USM settings. When SNMP V3 is selected, the community string settings disappear and are not used. They are replaced by the following settings. Username This field defines the security username. Auth Protocol This field defines the authentication protocol used: None, MD5, SHA, SHA224, SHA256. Auth Password This field defines the authentication password. Priv Protocol This field defines the privacy protocol used: None, AES128, AES192, AES256. Priv Password This field defines the privacy password used. SNMP Notes: Simple Network Management Protocol (SNMP) is used to manage and administer network devices. The module supports SNMP V1, V2c, and V3 and can be configured here. Using SNMP, the I/O states of the module can be read as well as some basic information about the module. See Section SNMP Requests, Objects and Community Strings for information about how to request information from the module using an SNMP manager. IP Filtering IP filtering can be enabled or disabled. IP filtering is used to restrict incoming network connections to only specific IP addresses. If a connection comes in to the module that is not in the range of allowable IP addresses, the connection is terminated. The IP filter only applies to incoming connections and not to outbound connections such as those to DNS servers. The module allows for two different ranges to be defined. If one of the ranges is not needed, the IP address in each of the three fields for a given filter must be 0.0.0.0. IP filter settings only take effect after the module is power-cycled. Page 64 Filter Range The IP addresses within the defined filter range are allowed to communicate with the module. IP addresses outside the ranges defined are rejected. The first field is the start address, the second field is the end address. Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.2.4 General Settings Tab > EMAIL SETTINGS Email Notification Description The module can be configured to send messages to up to eight email addresses when certain events occur. Tasks to send email messages when events happen are set up under under the Control/Logic Tab > TASK/FUNCTIONS tab. Events that can trigger email messages include local and remote I/O changes, Vin changes, and much more. In addition, email messages can be sent under the command of BASIC scripts. When an email message is sent, it looks similar to the the example message below: Note: The messages will vary depending on the ControlByWeb device (X-410, X-418, X-420, etc.). X-418 - Trigger: Condition 1 Task Analog Input 1: 4.2 V Analog Input 2: 2.5 VDC Analog Input 3: 1.00 VAC Analog Input 4: 0.001 Amps Vin: 12.00 V Time: 09/27/2017 15:30:00 Note: The sensor names as well as ON and OFF status text may be customized by the user/installer in the Setup Pages. The I/O names and and ON/OFF status text are assigned in the I/O setup section and are used both for the email messages and the Control Page. Subject Line The top line (in this example it reads "X-418 Trigger: Condition 1 Task"), appears in the subject line of the email message. The text on the left (in the example "X-418") is the same text that appears as the header on the Control Page. It is set in the Main Header Text field under the Monitor & Control Tab > CONTROL PAGE SETUP tab. To the right of the Main Header Text, the word "Trigger:" appears and this cannot be changed. To the right of the word "Trigger:", the name of the task which triggered the email message will appear. In the example, the task is called "Condition 1 Task" but tasks can (and should) be given custom names that make more sense to users. Tasks which can trigger emails are Scheduled, Conditional, Automatic Reboot, Test Email, or Basic Script. Tasks are configured under the tab Control/Logic Tab > TASK/FUNCTIONS. Current Status of the Analog Inputs, Vin, and Sensors The remainder of the email message will display the same information shown on the Control Page. Fields not displayed on the Control Page will not be included in the email message. Displayed fields may be configured in the Monitor & Control Tab > CONTROL PAGE SETUP page. Alternatively, the email message can be set to "Full" or "Short" on the Email tab of the Setup pages. Setting the Email Message to "Short" will only include the subject line, which may be more appropriate for alerts that are converted to SMS text messages. Important Note: Notification email messages are limited to 32 I/O. If the Control Page is configured to display more than 32 I/O, email notifications will contain the first 32 I/O that are displayed on the Control Page. Xytronix Research & Design, Inc. Page 65 The Email parameters are set on this page. X-4xx Series Users Manual SMTP Server The name of the SMTP (Simple Mail Transfer Protocol) mail server (i.e., mail.example.com) or the IP address of the mail server (i.e., 192.10.10.10) should be entered in this field. There is no default setting for this field. Note: If the server name is entered and not the IP address, the address of a DNS server will be required in the DNS field. Connection Security Select the security method used for sending the email. There are two methods used to securely transmit email messages. STARTTLS and TLS/SSL. When STARTTLS is chosen, encryption will begin after the module makes an unsecured connection to the SMTP server and negotiates TLS. When TLS/SSL is chosen, the connection to the server will be securely negotiated with the SMTP server from the beginning. Both methods are secure. STARTTLS generally requires the use of port 587 and TLS/SSL generally requires the use of port 465. No security method is also an option, and still supported by some SMTP servers. This method generally uses port 25. Server Port This field is used to specify the SMTP Mail Server Port. The default setting is 25, which is the standard SMTP port. This port will generally be different if a connection security method is chosen. Page 66 Xytronix Research & Design, Inc. X-4xx Series Users Manual User Name (If Required) If the SMTP mail server requires authentication, the user name must be entered here. There is no default setting for this field. Password (If Required) If the SMTP mail server requires authentication, the password must be entered here. There is no default setting for this field. Return Email The module itself will not receive email messages, but when the module sends email messages, it must include a return email address. This field is used to specify the return email address. Note that although the module will send email messages to any email address specified in this field, some email filters (spam filters) will not allow messages through that include an invalid email address. There is no default setting for this field. Email 1 to Email 8 Enter the email addresses of up to eight recipients. Email notifications will not be sent until tasks are created to send them. Email Message Choose either "Full" or "Short" email formats. Full sends email messages with all visible fields on the Control Page. Short sends messages only showing what triggered the email. Send Test Email This button sends a test email to the first email address in the email list using the currently configured network and email settings. By pressing this button, the settings are automatically submitted, and then a progress window will pop-up and display the result of the test email: · Success · Failed DNS Lookup · No Response from DNS server. Check DNS addresses, Power Cycle Device, etc. · Failed · Bad Username/Password · Missing recipient email address(es) · Server Address/Hostname does not exist or is misspelled · Server Address/Hostname is blank · No Response from SMTP server. Check server address and security/port combination Xytronix Research & Design, Inc. Page 67 X-4xx Series Users Manual 3.2.5 General Settings Tab > PASSWORDS The module requires passwords to access specific resources. The passwords can be changed on this page. Passwords must be 6 to 18 characters, both alphabetic and numeric characters are recommended. A hide/show check-box selects if the password will be shown. When a password is changed, it must be entered twice for verification. If the password is not entered identically in both fields, the password will not be changed. Administrator Administrators have access to all Setup, Task, and Control pages. This access privilege is normally used by a system integrator or installer to setup I/O, control logic and user interface. The Administrator username is admin (all lower case). The default password is webrelay (all lower case). To access these pages go to http://{ipaddress}/setup.html Manager Managers have access to Tasks and Control pages. This access privilege can be used for example, to allow a door access schedule to be changed for a holiday. A Manager cannot change network settings, I/O, or control logic. The Manager username is manager (all lower case). The default Manager password is webrelay (all lower case). Manager access can be enabled or disabled. When a manager logs into the Setup pages, they will receive a subset of the menu options allowing them to edit Scheduled Tasks and view the Control pages.To access these pages go to http://{ipaddress}/setup.html User Users have access privilege to the Control Page only. This access privilege is for users and operators to monitor sensors or control outputs that are on the Control Page. The password access for Users can be enabled or disabled. When this field is set to Yes, a password will be required to view the Control Page. The default setting for this field is No. The User username is user (all lower case). The default User password is webrelay (all lower case). To access these pages go to http://{ipaddress} Note: Since Modbus has no provision for passing passwords, Modbus will be disabled if the Control Page password is enabled. Device PSK The Device PSK is a pre-shared key used by other ControlByWeb devices when communicating with the module securely. When adding a remote ControlByWeb device to a module, that device's pre-shared key is asked for during the configuration. This is where that PSK is defined. Note that not all ControlByWeb devices support use of PSK. The PSK is a 32-byte hexadecimal key with valid characters being a-f and 0-9. Anything can be used as the devices PSK as long as it is 32 bytes long and contain only valid characters. The Generate PSK button can be used to request the module to generate a secure, random PSK. This is the preferred way to generate the PSK. Once generated, a new PSK need not be generated unless the old one has been compromised. A new PSK is generated when the device is reset to factory defaults. Page 68 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.2.6 General Settings Tab > DATE & TIME The module uses the time of day for scheduled events, such as turning local/remote I/O on or off at scheduled times, and for logging other local/remote I/O (a time stamp is included with each logged event). The time is stored and displayed in 24-hour time format. The module has a capacitor-backed, real-time-clock circuit that will sustain the time for several days in the event of a power failure. Current This is the current date and time maintained in the module. The time is stored and displayed in 24hour format. Set: This drop-down list offers two options for setting the time: Manually or Sync with NTP server. The options that follow this field will change based upon how this option is set. Manually Requires the user to enter the time and date. Sync with NTP server Allows the user to set the clock automatically by using an NTP (Network Time Protocol) server. Xytronix Research & Design, Inc. Page 69 X-4xx Series Users Manual Manual Time Configuration Date The current date is entered by selecting the month, day, and year using the drop-down boxes. Time (24 Hour Format) Enter the time as HH:MM:SS. (HH represents hours in 24-hour format [00-23], MM represents minutes [00-59], SS represents seconds [00-59].) UTC Offset World time zones are defined as an offset from Universal Time (GMT). It is common for many servers and data loggers to use GMT as their official time, even when they are not located within the GMT time zone. The default value for this field is -7 (Mountain Standard Time). For convenience, the time can be converted to local standard time by entering the offset here. This manual cannot include the UTC Offset for all parts of the world, but the offset for GMT time and the four major US Time zones are listed here. GMT Time: 0 Eastern Standard Time: -5:00 Central Standard Time: -6:00 Mountain Standard Time: -7:00 Pacific Standard Time: -8:00 SYNC With NTP Server NTP Host Name This field is used to specify the name or IP address of the NTP server. If a name is specified, a working DNS server address must be entered into the Network settings. If the IP address is specified, it should be entered in the following format aaa.bbb.ccc.ddd where each of the letters represents a number between 0 and 255. This field can be up to 40 characters. There is no default value for this field. Many NTP Internet servers are available. In addition, many desktop computers will function as an NTP server (both Mac and PC). If a desktop computer is used, firewall settings may need to be adjusted to allow for NTP communications on UDP port 123. Public NTP servers can be found at www.pool.ntp.org. Some of these are listed below. US Servers (http://www.pool.ntp.org/zone/us): 0.us.pool.ntp.org 1.us.pool.ntp.org 2.us.pool.ntp.org 3.us.pool.ntp.org North America (http://www.pool.ntp.org/zone/north-america): 0.north-america.pool.ntp.org 1.north-america.pool.ntp.org 2.north-america.pool.ntp.org 3.north-america.pool.ntp.org Europe (http://www.pool.ntp.org/zone/europe): 0.europe.pool.ntp.org 1.europe.pool.ntp.org Page 70 Xytronix Research & Design, Inc. X-4xx Series Users Manual 2.europe.pool.ntp.org 3.europe.pool.ntp.org Australia (http://www.pool.ntp.org/zone/au): 0.au.pool.ntp.org 1.au.pool.ntp.org 2.au.pool.ntp.org 3.au.pool.ntp.org South America (http://www.pool.ntp.org/zone/south-america): 0.south-america.pool.ntp.org 1.south-america.pool.ntp.org 2.south-america.pool.ntp.org 3.south-america.pool.ntp.org Africa (http://www.pool.ntp.org/zone/africa): 1.africa.pool.ntp.org 1.pool.ntp.org 3.pool.ntp.org NTP Sync Interval This option allows the user to specify how often the time on the module will be synchronized with the time server. When the Submit button on this page is pressed, the module will immediately synchronize with the time server. If Daily, Weekly, or Monthly options are selected, the module will thereafter re-synchronize with the time server at the period interval specified starting at 12:00 AM (00:00). To prevent multiple ControlByWeb devices from overwhelming the NTP server at power on, the exact time the NTP Request occurs is 12:00 AM (00:00) plus the minute equivalent of the last two digits in the models serial number. For example, if the last two digits in the model's serial number were -09, the NTP Request will occur 9 minutes after 12:00 AM. The default value of this setting is Once (the unit will immediately sync with the NTP server, but will not automatically sync again). Sync on Power Up When this option is set to Yes, the module will be synchronized with the time server each time it is powered. Note: If the module will lose power on a frequent basis, it may be beneficial to set this option to No. Some servers are configured to dis-allow access from client devices that excessively request their services. The default value of this setting is No. Daylight Savings Enable Daylight Savings can be enabled or disabled. The default setting is Yes. In many parts of the United States and in some other countries, the time is shifted forward by one hour during the summer months. This is an effort to conserve energy by making the daylight last longer into the evening hours. If this option is set to Yes, the time on the module will automatically be shifted forward by one hour between the hours of 12:00 AM 5:00 AM on the Daylight Savings Start date set below, and it will shift back to standard time between the hours of 12:00 AM 5:00 AM on the Daylight Savings End date set below. The time change is made at a random time within the previously mentioned, five-hour time frame, in order to prevent multiple devices from simultaneously requesting a time and overwhelming the NTP server. Xytronix Research & Design, Inc. Page 71 X-4xx Series Users Manual Note: When daylight savings time adjustment is enabled, Scheduled Tasks will be adjusted for the new time. Logged data includes a time stamp based upon the current time in the device followed by DST when the device is in daylight savings and STD when it is not. To avoid confusion, many servers and data loggers are set to remain on GMT time and do not shift for daylight savings. Daylight Savings Start Date/Time This is the date and time that daylight savings will start. Note that on this date, between the hours of 12:00 AM 5:00 AM, the current time will be shifted forward by one hour (i.e. the time will jump from 12:02 AM [00:02] to 1:02 AM [01:02]). By default this is set to the 2nd Sunday in March which is the date used in the United States. Daylight Savings End Date/Time This is the date and time that daylight savings will end. On this date, between the hours of 12:00 AM 5:00 AM, the current time will be shifted backward by one hour (i.e. time will jump from 12:02 AM [00:02] to 11:02 PM [23:02] the day before). By default this is set to the 1st Sunday in November which is the date used in the U.S. Page 72 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.2.7 General Settings Tab > BACKUP/RESTORE Use these tools to backup the settings (excluding scripts and SSL Certificates) on this device, or to copy settings from one device to another. This is useful for "cloning" or copying devices, or to maintain a backup copy of the settings. Import Settings File To import settings from an external file, first click the Browse button and select the desired settings.txt file on your computer. If Use Default Network Settings is checked, any network settings in the file are ignored and the network settings are forced to the default state. If Use Default Password is checked, the Administrator password in the file is ignored and the Administrator password is forced to the default state. Click the Import Settings button to import (load) the settings from the selected file. Export Settings File Click the Export Settings button to export all of the current settings to a "settings.txt" file. If desired, the file can be opened and examined with a text editor. Note that BASIC scripts and SSL Certificates are not included in this settings file and should be saved separately. 3.2.8 General Settings Tab > RS485 (X-404 and X-404C only) With the X-404 Modbus Master, these settings configure the baud rate, stop bits, and parity of the differential RS-485 bus. The most commonly used configuration is used by default. Xytronix Research & Design, Inc. Page 73 X-4xx Series Users Manual 3.2.9 General Settings Tab > Cellular Settings (X-400C and X-404C only) Modules equipped with a cellular modem have an additional section for cellular settings. IMEI This stands for "International Mobile Equipment Identity" which is a serial number for the internal cellular radio modem. This will be displayed as the device is able to retrieve it from the cellular modem. ICCID This stands for "integrated circuit card identifier" which is the serial number for the internal SIM card. This will be displayed as the device is able to retrieve it from the cellular modem. Signal Strength This indicates the signal strength of the connection between the module and the cellular carrier. More specifically, this is the power level of the signal received from the carrier. It is shown in decibelmilliwatts (dBm). Levels around -70dBm or higher represent excellent signal strength and levels between -100dBm and -113dBm represent fair signal signal strength. Page 74 Registration Status This field indicates the status of the connection between the module and the cellular network. It will indicate any of the following: Searching for Network The module is actively looking for a cellular network. This can take anywhere from 20 seconds to 30 minutes. During this phase, the Cell LED on the front of the device will blink on and off. Configuring Cellular Hardware On power-up, the main processor gets information from the cellular modem, such as the ICCID and IMEI, as well as configures the cellular modem so it can connect to a cellular network. Xytronix Research & Design, Inc. X-4xx Series Users Manual Registered (Connected to cellular network) The device has connected to a cellular network and the cellular network is ready to be used. The Cell LED on the front of the device will be solid green in this phase. Cellular Network Registration Currently Denied - Sometimes when a device is new, or a device had a recent connection to the cellular network which was not disconnected cleanly (signal loss or interference), the next attempt to connect to the cell network will be denied. On the remote end, the cellular network still thinks the device is connected and won't allow the sim card with the same ICCID to connect to the network until the old connection is cleared. It can take up to 15 minutes for the cellular network to clear the old connection. Until then, the device will be denied registration. This message will also be received by a device with a sim card that has not been activated. If you have not purchased a data plan for you cellular device please contact ControlByWeb. Unknown Registration Status There are many phases to establishing a cellular network connection. Any status message from the cellular modem that are unrecognized will be reported as 'Unknown.' This message, if it appears, should not last very long. If the cell modem is in an unknown state for too long, the main processor will reset it and configure it correctly. Mode This specifies how the cellular network is used by the device. Cellular Off (Use wired network only) Select this option when the cellular connectivity of the device is not needed. Always Use Cellular This option forces the device to use the cellular network connection for the following network services: Email, remote services/cloud connectivity, NTP, and DNS. In this mode the web pages can still be accessed directly over the wired ethernet connection, if present. Other network services such as modbus and SNMP will still use the wired ethernet interface. Use Cellular As Backup (When wired network fails) When this option is selected, the module defaults to the Ethernet network. In this mode, the module will continually ping the IP or hostname specified (every "X" minutes) to check for connectivity. If the pings fail to respond, or if an outgoing message fails (such as an email alert), the module will switch to the cellular network. When connected to the cellular network, the module will continue to try to ping through the Ethernet network. If the Ethernet network is restored, the module will revert back to the wired Ethernet. Cellular Connection Ping Server When the cellular network is connected, a ping will be sent to the following server periodically over the cellular network. If the device is unable to ping the server over the cellular network, the cellular network connection will be refreshed. Cellular Ping Interval This setting determines how often a ping will be sent over the cellular network. Xytronix Research & Design, Inc. Page 75 X-4xx Series Users Manual Wired Connection Ping Server When the ethernet network is connected, a ping will be sent to the following server periodically over the ethernet connection. If the device is unable to ping the server over the ethernet connection, the device will then use the cellular network for network services until the ethernet connection comes back. This is used in the cellular fail-over mode to detect when the wired Internet connection goes down. Wired Ping Interval This setting determines how often a ping will be sent over the wired ethernet connection. Notification Email Address When the wired and cellular networks go up and/or down, notification emails will be sent to the first email address on the Email setup page (Email 1). 3.2.10 General Settings Tab > Bluetooth Settings (X-400C and X-404C only) Modules equipped with Bluetooth also have an additional section for Bluetooth settings. Mode: There are three Bluetooth modes: Bluetooth off The Bluetooth capability is permanently off. Set this mode once the device has been configured and Bluetooth will not be used to get status updates from the device. Turn Bluetooth on with button, off with idle timeout The Bluetooth capability of the device not only facilitates initial configuration of the device, but can also be used to retrieve status updates from the device through the CBW Mobile app. In this mode, Bluetooth will timeout when not in use. To turn Bluetooth back on, press the physical button on the side of the device. Bluetooth always on In this mode, Bluetooth will always be on and available for reporting the device status to the CBW Mobile app. Idle Timeout: You can specify the amount of time when Bluetooth is configured to timeout (in seconds). Page 76 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.3 Remote Devices / Devices Tab The Remote Devices tab (labeled as the Devices tab for the X-400, X-400C, X-404 and X-404C) is used for all X-4xx Series modules. These modules can monitor and control the I/O located on up to 32 other ControlByWeb devices (including expansion modules). I/O can be directly added to the X-400 via the expansion bus, and thirdparty modbus sensors can be added to the X-404. This feature can be used to implement a distributed control system. With distributed control, intelligent control devices, such as the module are placed in close proximity to the sensors, relays, motors and valves that are to be monitored and controlled. The control devices are connected together into a control system with Ethernet communication. This means no central control cabinet is needed with long wire runs to the sensors, relays, motors and valves in your facility. Figure 1: The screenshot below shows a sample device list from on an X-404 module (note that the button labeled "Add Modbus Sensor" is only available on the X-404 and X-404C modules). With Ethernet communication, the control system can accommodate applications with long distances between the devices being monitored and controlled. Each device on the bus implements a portion of the control application. To access I/O on remote devices or sensors, first add the device or to this device list, then add and configure their I/O under the I/O Setup tab. Remote devices, expansions modules, and third-party modbus sensors appear in the Device List table on the Devices tab and can be created, edited or deleted as needed. You can add a devices to the module in two ways: Xytronix Research & Design, Inc. Page 77 X-4xx Series Users Manual 1. Automatically: Click Find Devices This will look for expansion modules, and other X-400 Series devices (X-410, X-418, etc.) on the network and allow you to automatically add them to the module. (On the X-404, generic modbus sensors will not be detected and must be added manually.) 2. Manually: Click Add Remote Device. Depending on the Model selected in the pull-down list , the available settings will change to accommodate the capabilities of the remote device. For example, only certain devices can support encrypted communications: Page 78 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.3.1 Adding Ethernet and Expansion Modules The following settings will appear when adding expansion modules (on the X-400) and remote devices. Device Name This text field allows setting a descriptive device name that will be referenced throughout the setup pages. Up to 24 characters may be entered in this field. The default text is "Device 1". Set the name to a descriptive value such as "Warehouse Lights". Model Click the symbol and choose from the list of supported remote devices. When changing the device type of a previously configured device, only I/O compatible device types will be enabled. Serial Number The serial number of the remote device is entered here. The serial number is only required for X-400 series devices and expansion modules. The default value is 000CC8000000 The following settings will only appear for remote devices (non-expansion modules). IP Address/Hostname The IP address or hostname of the remote device. Up to 61 characters may be entered in this field. Port The TCP port number of the remote device. This must match the port (HTTP port) set in the remote device. The valid range is 1 to 65535. The default port number is 80. If TLS PSK Encryption is selected (see below), the default port number is 443. Security Configuration Select either Unencrypted or TLS PSK Encryption. When both devices are on the same local network unencrypted communication is usually acceptable. When devices communicate across the Internet, encrypted communication is recommended. Performance with encrypted communication will be slightly slower. Device Control Password This setting is shown if the security configuration is set to Unencrypted. Enter the password required to access the I/O on the remote device. This password will be the same as the `User' password on the remote device. Device PSK This setting is shown if the security configuration is set to TLS PSK Encryption. This is the pre-shared key required to access the I/O on the remote device using encryption. The pre-shared key can be found on the Passwords tab on the remote device. Device Admin Password Enter the admin password for the remote device. With this password, the module will automatically add itself to the remote device's Device List. This setting is only shown if the remote device supports this feature. This feature will only work if the remote device is connected to the Ethernet and both the Serial Number and IP address are set (above). Xytronix Research & Design, Inc. Page 79 X-4xx Series Users Manual Remote Device Monitor and Control: Note that this section only applies to remote devices and does not apply to expansion modules connected to the expansion bus on the X-400. Communication with newer remote ControlByWeb devices can use both event-driven and polled communication models. Older ControlByWeb devices only used polling to monitor the inputs of remote devices. This works as long as a small delay is acceptable and direct communication to the remote device is available. (No routers with port forwarding disabled, etc.) Control of relays could be instantaneous as long as direct communication with the remote device is available. The X-4xx Series of products introduced a mechanism which allows event-driven communications in both directions. Rather than relying on polling, I/O changes are "pushed" to other devices. This has the advantage of avoiding the latencies of the polling interval, and since the information is pushed, communications can occur through a router or firewall without the need to configure port forwarding. The mechanism is enabled by selecting Instant Send or Instant Receive communications settings. These options will only appear when communicating with devices that support this. Standard If this check-box is enabled, the remote device is controlled and monitored by sending relay commands when needed and periodically polling its status. Direct communication with the remote device is required. If outside the current network, port forwarding must be configured. Poll Interval This option appears when "Standard" is checked. It specifies how often the local device reads the state of the remote device. Instant Receive If this check-box is enabled, the remote device can instantly send specific I/O changes to the local (this) device. The remote device will push I/O state to the local device periodically and/or when triggers are set up on the remote device to do this. This check box basically means that this device will accept the instant send messages from the remote device. Instant Send If this check-box is enabled, the local (this) device instantly pushes specific I/O changes to the remote device. The remote device can use these state changes to instantly change relays or perform other logic functions. In addition to enabling this option, triggers should be set on this local device for each I/O change that should cause the I/O state to be sent. Triggers are set up by an creating tasks and setting actions under those tasks to send the I/O state. (see Control/Logic Tab > TASK/FUNCTIONS). Note that when I/O status is sent, it sends the status of ALL I/O, not just the trigger. Also note that in addition to sending the I/O status when trigger events occur, the I/O status will be sent periodically at the specified Push Interval below. Push Interval This option appears when "Instant Send" is selected. It defines the time period that local data is pushed to the remote device. Page 80 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.3.2 Devices > Adding Modbus Sensors (X-404 Only) The following settings will only appear for Modbus Sensor/Devices on the X-404. The X-404 (and X-404C) modules have a button to add Modbus sensors. This is located in the lower right of the Devices table. This brings up a popup window with the options below. Device Name This text field is used to set a descriptive device name that will be referenced throughout the setup pages. Up to 24 characters may be entered in this field. The default text is "Device 1". Set the name to a descriptive value. Modbus Address The modbus address (1 247) used to communicate with the modbus sensor. All modbus sensors on the bus must have a unique address. · Find Address: When only one modbus sensor is connected to the X-404, the X-404 can find the current address of the modbus sensor. The address will be populated in the Modbus Address field. This is useful for finding the current address of a modbus sensor. If multiple sensors are connected to the X-404, the lowest sensor address will be found and be populated in the Modbus Address field. Sensor/Device Type The X-404 has built-in support for some third-party modbus sensors and can provide additional configuration options for these sensors when identified under this setting. For third-party modbus sensors without built-in support, leave this settings at "Generic" Poll Interval The X-404 polls the modbus sensors at the rate or frequency specified in this field. The default value of this setting is 3 seconds. Response Timeout When the X-404 requests the status from a modbus sensor, this is the amount of time it will wait for a response. Some modbus sensors respond quicker than others. This information can be found in the modbus sensor's manual. If a modbus sensor is unresponsive (and correct Modbus Address is entered above), then increasing this value will usually solve the problem. Xytronix Research & Design, Inc. Page 81 X-4xx Series Users Manual Register Start Address When the X-404 requests the status from the modbus sensor, it will issue a read multiple register command starting at this address. Addresses in the 40000 range will be read as "input registers" while addresses in the 30000 range will be read as "holding registers." For example, to read temperature from a modbus sensor from the holding register at address 1000, you would enter 31000 as the start address, and 1 for the register quantity. Number of Registers When the X-404 requests the status from the modbus sensor it will issue a read multiple register command at the starting address and read the number of registers entered in this field. These modbus registers can then be mapped to X-404 registers by adding register I/O. Important Note about adding modbus sensors: After sensors are added (under the Devices tab), the I/O for the sensors should be mapped to X-404 registers under the I/O tab (see I/O>Registers). Once they are mapped to X-404 registers they can be used in control or monitoring logic, logged, or displayed on the Control Page just like any other I/O. Page 82 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.4 I/O Setup Tab Each X-4xx series module supports a total of up to 100 Input/Output (I/O) resources. These can be a mix of local I/O, registers, timers, and Vin. These can also include I/O found on remote devices (relays, analog inputs, digital inputs, etc.). Fixed resources, such as the device's local I/O automatically appear under the I/O Setup tab. When another ControlByWeb device is added to the module (local module), the user has the option to add I/O (relays, digital inputs, analog inputs, etc.) from that device to the local module. The I/O that was selected when adding devices will automatically appear in the appropriate section under the I/O Setup tab. I/O from remote devices or sensors can be added or deleted at any time. Once the I/O from other devices is added, it can be used just like local I/O that is built into the local module. For example, it can be used in control logic using the task builder, logged, or added to the Monitor and Control page. For more information about setup options for remote I/O types (relays, analog inputs, digital inputs, etc.), please see that device's users manual. If an I/O resource is deleted, any dependent task in the Task Builder, or Control Page widget which references that particular I/O is also automatically deleted. If logging is enabled for the I/O resource which is being deleted, the I/O resource is automatically removed from the logging list and the log file is reset (a warning is shown that the log file is about to be deleted.) The log file is deleted since the log file format is dependent on that I/O being logged. If a remote device is deleted, any dependent I/O resources, Tasks, Control Page widgets, and logs are also automatically deleted. Xytronix Research & Design, Inc. Page 83 X-4xx Series Users Manual 3.4.1 I/O Setup Tab > Relays This page allows configuration of all relays whether on an expansion or remote device. Click the respective Edit button to configure each relay. Expansion module relays have some settings that remote relays don't have and vice versa. Relay Options Relay Name This text field describes the function of the selected relay. The label text appears to the left of the corresponding relay status on the Control Page and in the email message when email alerts are enabled. When later defining the control logic, logging and other settings, this label appears in the pull-down lists of relay resources. Up to 27 characters may be entered in this field. The default text is "Relay #". Set the name to a descriptive value such as "Warehouse Fan". On Status Text The text in this field specifies the text that will be displayed in the Control Page and in email messages when the relay is On. Up to 16 characters may be entered in this field. The default text is "On". Set the status text to a descriptive value such as "Fan On". Off Status Text The text in this field specifies the text that will be displayed in the Control Page and in email messages when the relay is Off. Up to 16 characters may be entered in this field. The default text is "Off". Set the status text to a descriptive value such as "Fan Off". Page 84 Xytronix Research & Design, Inc. X-4xx Series Users Manual Device For remote and expansion relays, this settings specifies the device that the relay is found on. Device's Relay # For remote and expansion relays, this settings specifies the relay number on the device. Relay Group The module can group some or all of the relays into "relay groups." Combining relays into groups provides a simple method of controlling multiple relays at once. For example, a conditional task can have an action to turn on relay group 1 that would cause all the relays assigned to relay group 1 to turn on at the same time when triggered. Each relay can still be controlled independently while assigned to a relay group. In applications where a large number of relays are used, this scheme allows one task to control all of the relays with one Action. Local Relay Number This number will be associated with this relay in the modulestate.xml and state.json files. If it is left unassigned, the relay will not appear in the state.xml or state.json files. Expansion Relay Options Power Up State: This drop-down menu specifies the state of the relay when the module is powered up: Off The relay will be off upon power up. This is the default setting. On The relay will be on when power is applied to the module. Last State Upon power up, the relay will return to its last state when the module was powered off. Scheduled State When the device is powered up, its state will be determined by any scheduled tasks configured to change the relay state. For example, if a scheduled task turns the relay on at Noon and another scheduled task turns the relay off at 1:00 p.m everyday, then if the device loses power and comes back on between Noon and 4:00 p.m., the relay will be on. If it comes back on any other time, it will be off. Pulse Time When the module receives a pulse command for the relay (through the web page or through a command), the relay will pulse for the time specified in this field. Note that when a pulse command is sent through the command interface, the command can include a pulse time which will override this value. The time is specified in seconds and can range from 0.1 seconds to 86400 seconds in 0.1 second increments. The default time is 1.0 seconds. Note that if additional pulse commands are issued to the relay before the pulse time has expired, the relay will remain "on" and the pulse timer will be set to the full pulse time once again, extending the total "on" time. Xytronix Research & Design, Inc. Page 85 X-4xx Series Users Manual 3.4.2 I/O Setup Tab > DIGITAL INPUTS This page is used to configure expansion module digital inputs, as well as any remote digital inputs located on other ControlByWeb devices that have been added. The digital input resources can be named and have binary (true/false) values. Digital inputs appear in tables on the digital inputs tab and can be created, edited or deleted as needed. Each of the digital inputs can be configured for use with a 24-bit digital counter which counts the number of pulses on the respective digital input. The counters can count up to 200Hz and can be used with paddle wheel flow-meters, traffic sensors and other sensors which output pulses. The counters can be named and work similar to Registers where the counter value is accessible to Conditional Tasks, BASIC scripts and control page widgets. The counters associated with digital inputs 1 and 2 are stored in battery-backed memory and will retain their count through a power loss; however, the counters will not continue to increment while the module power is off. Click the respective Edit button to configure each digital input. Digital Input Options Digital Input Name This text field describes the function of the selected digital input. The label text appears to the left of the corresponding digital input status on the Control Page and in the email message when email alerts are enabled. When later defining the control logic, logging and other settings, this label appears in the digital input pull-down list. Up to 27 characters may be entered in this field. The default text is "Digital Input #". Set the name to a descriptive value such as "Warehouse Door". On Status Text The text in this field specifies the text that will be displayed in the Control Page and in email messages when the digital input is On. The digital input is considered "on" when sufficient voltage is applied to the input. Up to 16 characters may be entered in this field. The default text is "On". Set the status text to a descriptive value such as "Door Open". Off Status Text The text in this field specifies the text that will be displayed in the Control Page and in email messages when the digital input is Off. Up to 16 characters may be entered in this field. The default Page 86 Xytronix Research & Design, Inc. X-4xx Series Users Manual text is "Off". Set the status text to a descriptive value such as "Door Closed". Mode: The digital input can be configured for several operating modes: On/Off Counter Frequency A single I/O resource with the name "name" is created, where name is the digital input name defined above. The resource has binary (true/false) values. The digital input is configured as a digital counter which counts the number of pulses on the respective digital input. Two I/O resources are created: name and name.counter. The counter value can be scaled into engineering units and is accessible to conditional tasks, BASIC scripts, Modbus and control page widgets. The counters associated with digital inputs 1 and 2 are stored in battery-backed memory and will retain their count through a power loss; however, the counters will not continue to increment while the module's power is off. The frequency of the respective digital input is measured by counting the number of pulses that occur during a period of one second. The value is updated once each second. A single I/O resource is created in the form name.frequency. The frequency value can be scaled into engineering units and is accessible to Conditional Tasks, BASIC scripts, Modbus and Control Page widgets. Units Text entered here will be displayed on the right of the value when shown on the Control Page. This text does not affect the underlying value. Set the units to GPM, ea., mph, etc. Decimal Places The number of digits displayed to the right of the decimal point. This does not affect the accuracy of the underlying value. Slope (Multiplier) The counter and frequency values can be scaled into engineering units. The module reads the raw value from the counter and calculates a new value in engineering units. This scaled value is calculated using the following y=mX+b formula.. Scaled Value = Slope * Count + Offset The calculated scaled value is used for logs, email messages, the Control Page, XML pages, and is returned when Modbus values are read. The "slope" in the formula above is provided by the user and is entered in this field. When both the slope and offset are set to their default values (m=1 and y=0) the scaled value equals the actual count. Offset The offset in the formula above is provided by the user and is entered in this field. The default value for this field is 0. Xytronix Research & Design, Inc. Page 87 X-4xx Series Users Manual Device For digital inputs, this settings specifies the device that the digital input is found on. Device's Digital Input # For digital inputs, this settings specifies the digital input number on the remote or expansion device. Note: For remote counters, frequency, etc., the values are read from the remote device and not calculated locally. Local Digital Input Number This number will be associated with this digital input in the module state.xml and state.json files. If it is left unassigned, the digital input will not appear in the state.xml or state.json files. Counter Options Digital Input Count Mode Increment when ON Count on the rising edge of the pulse Increment when OFF Increment when input changes Count on the falling edge of the pulse Count on both rising and falling edges of the pulse Reset Count At The counters automatically "roll over" to zero when the count reaches the value of this setting. This setting is an integer for the raw count, before any slope multiplier or offset is applied. When name.counter. is accessed by Conditional Tasks, BASIC scripts and Control Page widgets, the slope multiplier and offset are applied, and the value is a single precision, floating-point value. Using an example to clarify, if Reset Count = 5 the counter will count as follows... 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0 Reset Counter This button manually resets the counter to zero Advanced Features The digital inputs can be configured for several additional operating modes: Hold Time (de-bounce): The input must remain On for this amount of time before the logic considers this input to be On. For switches and other noisy sensors, this eliminates problems with falsely detecting multiple On states before the input becomes stable. The default setting is 20ms and can be set from 0-250ms. The digital input is processed by this setting before it is applied to the on/off, counter, and frequency logic. This setting directly limits the maximum input frequency that can be measured. Measure On-Time: When this feature is enabled, the time that the input is "on" is measured. This value will be cleared when the input changes from "off" to "on". When the input changes from "on" to "off" the value will be frozen and can be accessed as long as the input remains "off". The On-Time only starts counting once the debounce time has expired and continues after the input goes off until the debounce timer expires again. An I/O resource is created in the form: name.onTime Measure Total On-Time: When this feature is selected, the accumulated time that the input is on is measured. When the input is "off," the timer stops. When the input goes "on" again, the Page 88 Xytronix Research & Design, Inc. X-4xx Series Users Manual timer resumes. This feature is useful for example, to measure the total run time of a machine to determine when maintenance is needed. The Total On-Time only starts counting once the debounce time has expired and continues after the input goes "off" until the debounce timer expires again. An I/O resource is created in the form: name.totalOnTime. 3.4.3 I/O Setup Tab > 1-Wire SENSORS This tab is used to configure local, expansion, and remote 1-Wire sensors (temperature, humidity, and/or other 1-Wire sensors). Up to 16 1-Wire sensors can be connected to the module. The module will automatically detect the type of sensor connected. Once added to the module, 1-Wire sensors appear in the table on the 1-Wire Sensors tab and can be created, edited or deleted as needed. Every 1-Wire sensor comes from the factory with a unique, non-changeable address. Once the sensor is connected to the module, the module must associate a sensor name with the sensor address. You must define a sensor name and associate an address for each 1-Wire sensor. For remote 1-Wire sensors, only the device and sensor number (not address) are needed (the 1-Wire address should be configured locally on the remote device). For example, a list of named, associated 1-Wire sensors is shown: To add a new local 1-Wire sensor, click Add 1-Wire Sensor in the local 1-Wire Sensors table. Enter a descriptive name for the sensor in the Sensor Name box such as "Outdoor Temperature". The text in this field appears to the left of the corresponding temperature/humidity reading on the Control Page. This text also appears in the email status message when email notifications are enabled. When Xytronix Research & Design, Inc. Page 89 X-4xx Series Users Manual later defining the control logic, logging and other settings, this label appears in the pull-down lists of sensor resources. This field can be up to 27 characters in length. Click to see a list of the connected 1-Wire sensors. The addresses of the non-associated sensors on the bus are shown in the drop-down list together with the sensor type of each sensor. Click the Refresh button to make a fresh scan of the bus for sensors. For each sensor being added, select the appropriate address from the sensor address drop-down list. As 1-Wire sensors are added to the module, the addresses are removed from the pull-down list of available addresses. The X-DTHS-P temperature/humidity probe is a composite device and has a single 1-Wire address. The drop-down list will show both a temperature and a humidity ID with the same sensor address. Select the appropriate ID (temperature or humidity) and the sensor address that matches the sensor address printed on the housing of the X-DTHS-P. Alternatively, connect the sensors to the bus one at a time. The procedure is to start with one sensor and add it with the appropriate sensor name by selecting the sensor address within the drop-down list. Press Submit, connect a second sensor, and press the Refresh List button. Associate the second sensor to the appropriate sensor name. Continue this procedure until all sensors are set up. The General Settings page has a setting to select the display for Fahrenheit, Centigrade or Kelvin units. 1-Wire sensor addresses that have already been associated will not show in the list of available 1-Wire sensors. 1-Wire Options Decimal Places The number of digits to the right of the decimal point. This setting does not affect the accuracy of the underlying value. It is applied whenever the 1-Wire value is displayed in the Log files, Control Pages, Emails, Etc. Local 1-Wire Number This number will be associated with this 1-Wire sensor in the module state.xml and state.json files. If it is left unassigned, the 1-Wire sensor will not appear in the state.xml or state.json files. Local & Expansion 1-Wire Options Offset If desired, an offset can be added to the 1-Wire sensor's measurement. By default, the offset is 0.0 FinalValue = Sensor's Measured Value + Offset Remote 1-Wire Options Device For remote 1-Wire sensors, this settings specifies the device to which the remote 1-Wire sensor is connected. Device's Sensor # For remote 1-Wire Sensors, this settings specifies the 1-Wire number on the remote device. (Not the address of the 1-Wire sensor.) Sensor Type The module can determine the type of 1-Wire sensor if it is connected directly to the device. For remote 1-Wire sensors the sensor type must be configured for the module to know which type of sensor it is. Page 90 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.4.4 I/O Setup Tab > Analog Inputs This page allows configuration of both expansion module analog inputs and remote analog inputs (if remote devices have been configured). X-400 series devices with local analog inputs feature a highperformance, 16-bit analog data acquisition system. Each analog input can be configured separately: Screenshot from the X-418. ControlByWeb devices with analog inputs will appear similarly. Single Ended Single-ended signals are referenced to the Gnd terminals. Each channel can be independently programmed with a ±1.28V, ±2.56V, ±5.12V, ±10.24V voltage range. Differential 4-20mA Differential sensors have two inputs that reference each other instead of ground. The differential mode uses two analog inputs instead of one. For example, if Channel 1 is selected for differential operation, the differential signals are connected to Channel 1 and 2. If Channel 3 is selected for differential operation, the differential signals are connected to Channel 3 and 4, and so on. The differential mode supports input ranges of up to ±20.48V; however, the absolute input voltages must be less than ±10V. For example, if Input1 is configured for differential operation and Input1 = +10V and Input2 = -10V, the measurement will read +20V. On the other hand, if Input1 = -10V and Input2 = +10V, the measurement will read -20V. Configured for 0-20mA operation. Some industrial sensors output a current instead of voltage levels. The 4-20mA mode enables an internal precision 200- ohm shunt resistor (0.1%, 25ppm) and automatically configures the A/D for ±5V operation. This feature allows direct connection to 0-20mA current loop transducers. At 20mA, the maximum loop voltage across this device is 4.0 Volts (.020 x 200 = 4.0). With this setting, the voltage to current calculation ((Vin/200)*1000) is automatically made so the measurement is in units of mA. Digital Input For applications where digital inputs are needed, each analog input can be configured as a pseudo digital input with boolean (true/false) states. The input voltage is compared to fixed thresholds to determine a true/false state. The input is considered "true" when the voltage rises above 3.5V and "false" when it falls below 1.5V. If an analog input is configured as a "digital input", the analog input widget on the Control Page will have appropriate setup options as a digital input. Xytronix Research & Design, Inc. Page 91 Click the respective Edit button to configure each analog input. Expansion analog inputs have some settings that remote analog inputs don't have and vice versa. X-4xx Series Users Manual Edit Analog Input Options Input Name This text field describes the function of the selected analog input. The label text appears to the left of the corresponding analog input on the Control Page and in the email message when email alerts are enabled. When later defining the control logic, logging and other settings, this label appears in the pull-down lists of analog input resources. Up to 27 characters may be entered in this field. The default text is "Analog Input #". Set the name to a descriptive value such as "Wind Direction". Page 92 Range Selection The analog to digital converter has a programmable gain amplifier (PGA). This setting specifies the full scale range of the analog input. Settings include; ±1.28V, ±2.56V, ±5.12V, ±10.24V. Device The device where the remote analog input is found. Device's Sensor # The analog input number on the remote device. Decimal Places The number of digits displayed to the right of the decimal point. This does not affect the accuracy of the underlying value. Units Text entered here will be displayed on the right of the value when shown on the Control Page. This text does not affect the underlying value. Set the units to Volts, mA, mph, etc. Slope (Multiplier) The analog value can be scaled into engineering units. The module reads the raw value (volts) from the analog-to-digital converter and calculates a new value in engineering units. This scaled value is calculated using the following y=mX+b formula. Scaled Value = Slope * RawValue + Offset The calculated scaled value is used for logs, email messages, Control Pages, XML pages, and is returned when Modbus values are read. The "slope" in the formula above is provided by the user and is entered in this field. When both the slope and offset are set to their default values (m=1 and y=0) the scaled value equals the input Xytronix Research & Design, Inc. X-4xx Series Users Manual voltage. Offset The offset in the formula above is provided by the user and is entered in this field. The default value for this field is 0. Local Analog Input Number This number will be associated with this analog input in the module state.xml and state.json files. If it is left unassigned, the analog input will not appear in the state.xml or state.json files. Pseudo Digital Input Options If an analog input is configured as a pseudo digital input, the following options are available: Digital Input Name This text field describes the function of the selected digital input. The label text appears to the left of the corresponding digital input status on the Control Page and in the email message when email alerts are enabled. When later defining the control logic, logging and other settings, this label appears in the digital input pull-down list. Up to 27 characters may be entered in this field. The default text is "Digital Input #". Set the name to a descriptive value such as "Warehouse Door". On Status Text The text in this field specifies the text that will be displayed in the Control Page and in email messages when the digital input is On. The digital input is considered "on" when sufficient voltage is applied to the input. Up to 16 characters may be entered in this field. The default text is "On". Set the status text to a descriptive value such as "Door Open". Off Status Text The text in this field specifies the text that will be displayed in the Control Page and in email messages when the digital input is Off. Up to 16 characters may be entered in this field. The default text is "Off". Set the status text to a descriptive value such as "Door Closed". Xytronix Research & Design, Inc. Page 93 X-4xx Series Users Manual 3.4.5 I/O Setup Tab > Registers Registers are working variables that can be changed externally through the Control Page, XML requests, or the BASIC script. Registers can allow a BASIC script to react to user input. These variables are considered to be floating point numbers, just like other variables in the BASIC script. Registers can also hold boolean information where "1"=true and "0"=false. This tab has settings for each of the configured Registers. By default, one register (register1) is pre-defined and is battery-backed such that its value is retained across power loss. Registers appear in tables on the Registers tab and can be created, edited, or deleted as needed. Up to 16 Local Registers can be created. The module can also access remote registers found on other devices. Register Options Register Name Text entered here will be displayed in the left column of the control page. Up to 27 characters may be entered here. The default text is "Register 1". This is also the resource name used in a BASIC script. When later defining the control logic, logging and other settings, this label appears in the pull-down lists of Register resources. Decimal Places The number of digits displayed to the right of the decimal point. This does not affect the accuracy of the underlying value. Units Text entered here will be displayed on the right of the value when shown on the control page. This text does not affect the underlying value. Set the units to °F, ft, mph etc. Minimum Value If this register can be changed externally through the Control Page, XML requests, or the BASIC script it is may be useful to restrict the range of the register value. For example, a thermostat set-point register can be restricted to a minimum value. Maximum Value If this register can be changed externally through the Control Page, XML requests, or the BASIC script it is may be useful to restrict the range of the register value. For example, a thermostat set-point register can be restricted to a maximum value. Local Register Number This number will be associated with this register in the module state.xml and state.json files. If it is left unassigned, the register will not appear in the state.xml or state.json files. Page 94 Xytronix Research & Design, Inc. X-4xx Series Users Manual Local Register Options Power Up State At power-up the register is set to either an Initial Value (set below) or the Scheduled State. The Scheduled State will cause the Register value to be that defined by any scheduled tasks as if the power was always on. Remote Register Options Device The device where the remote register is found. Device's Sensor # The register number on the remote device. Xytronix Research & Design, Inc. Page 95 X-4xx Series Users Manual 3.4.6 I/O Setup Tab > Modbus Registers (X-404 only) When Modbus sensors or devices on the RS-485 bus are added under the Devices tab and I/O from those devices is selected to add this the X-404, that I/O will appear under the Registers tab (listed as Modbus Registers). Modbus Registers, just like the registers described above, are working variables that can be changed externally through the Control Page, XML requests, or the BASIC script. The X-404 functions as a Modbus Master and can read and write registers in a Modbus slave device (sensor). The registers on the modbus sensor are accessed on the X-404 by mapping the sensor registers to local modbus registers. The example screenshot below shows the registers from two sensors (MPX probe and and Ultrasonic sensor) mapped to local Modbus Registers. When you add or edit a Modbus Register, the following window appears and each field is described below. Page 96 Xytronix Research & Design, Inc. X-4xx Series Users Manual Modbus Register Options Register Name Text entered here will be displayed in the left column of the control page. Up to 27 characters may be entered here. This is also the resource name used in a BASIC script. When later defining the control logic, logging and other settings, this label appears in the pull-down lists of Register resources. Device This is the modbus sensor or device that is associated with this register. Device's Register # This is the Modbus register number in the device or sensor. Local Register Number This is the register number that will be used for this Register in state.json, etc. Decimal Places The number of digits displayed to the right of the decimal point. This does not affect the accuracy of the underlying value. Units Text entered here will be displayed on the right of the value when shown on the control page. This text does not affect the underlying value. Set the units to °F, ft, mph etc. Minimum Value If this register can be changed externally through the Control Page, XML requests, or the BASIC script it is may be useful to restrict the range of the register value. For example, a thermostat set-point register can be restricted to a minimum value. Maximum Value If this register can be changed externally through the Control Page, XML requests, or the BASIC script it is may be useful to restrict the range of the register value. For example, a thermostat set-point register can be restricted to a maximum value. Xytronix Research & Design, Inc. Page 97 X-4xx Series Users Manual Modbus Register Data Type Use this option to specify the numeric format of registers on the device or sensor. Options include 16 or 32 bit, signed or unsigned, or single precision float. When 32 bit formats are specified, the next consecutive register is used for the second 16 bits. Single precision floats use 32 bits. Modbus Register Endianess This option specifies the order of how data is stored in the registers. Specifically, big end or little end first. Options include Big-endian (ABCD) or Little-endian (CDAB) Slope The modbus register will be multiplied by this number. The Final Value = Measured Value x Slope + Offset. The Final Value is the number that is stored in the local register. By default the slope is 1.0 and the offset is 0 so the local register value = the measured modbus register. Offset This number will be added to the product of the Measured Value and the Slope. The Final Value = Measured Value x Slope + Offset. The Final Value is the number that is stored in the local register. By default the slope is 1.0 and the offset is 0 so the local register value = the measured modbus register. Page 98 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.4.7 I/O Setup Tab > Vin The power supply voltage (Vin) to the module is internally measured and can be displayed, logged, or used in logic. This page configures the name for the Vin voltage. Note: The module can also monitor the power supply voltage of remote devices. For POE devices, the power is provided over the Ethernet cable and the Vin+ monitor will show 0-volts. To edit the Vin name, click Edit. Vin Options Vin Name This text field is used to describe the power supply voltage value. By default it is set to "Vin." The text appears to the left of the Vin status on the Control Page. This text will also appear in email messages when email alerts are enabled. This field may be up to 27 characters long. Set the name to a descriptive value such as "Power Supply" or "Battery Voltage". Remote Vin Options Device The device where the remote Vin is found. Xytronix Research & Design, Inc. Page 99 X-4xx Series Users Manual 3.4.8 I/O Setup Tab > TIMERS Timers are I/O resources for measuring the time between events/tasks or generating controlled delays. The timers are essentially 24-bit down counters with a one-second resolution. Timers appear in a table on the Timers tab and can be created, edited, or deleted as needed. Up to 16 Timers can be created. The timer's value is accessible to Scheduled and Conditional Tasks, BASIC scripts, Modbus and Control Page widgets. There are no remote timers. A timer is started via an Action by setting it to a non-zero value. The timer counts downwards and stops when it reaches 0. When the timer reaches zero it generates a "timer expires" event. The "timer expires" events appear in the drop-down list of available Triggers for Scheduled and Conditional Tasks. To add a timer, click Add Timer. Timer Name This text field is used to describe the timer. By default it is set to "Timer #." This field may be up to 27 characters long. Set the name to a descriptive value such as "Warmup Delay". (Note: This text appears to the left of the timer status field on the Control Page. It also appears in the pull-down lists under "Timer" resources when configuring tasks, logging, and other settings.) Power Up Value At power-up, the timer is set to this value. If the power-up value is something other than 0, the timer will begin to count down once the device is powered. Trigger(s) Scheduled and Conditional Tasks can start and stop a Timer. Once a timer is added and named in this tab, it will appear in the pull-down list of available Actions for Scheduled and Conditional Tasks. The Action can be specified to either reset the counter (stop) or to set it to a fixed value (start). Actions that control the timer are shown in the Trigger(s) field. (See example to the right for reference.) Page 100 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.5 Control/Logic Tab The sub-menus under the Control Logic tab define the logic of the module. Conditional and Scheduled tasks as well as BASIC scripts are defined under this tab group. 3.5.1 Control/Logic Tab > TASK/FUNCTIONS "Tasks" are control logic functions that perform specific things, such as turn a remote relay on/off under certain conditions or at certain times. Tasks are assigned a name, configured for a desired function, and saved. Once saved, they appear in tables on the Tasks/Functions tab and can be edited or deleted as needed. Tasks are configured using settings and pull-down menus to define the logic function without the need to learn boolean or other programming syntax. For more complex logic functions or logic functions not supported by this tab, see Section Control Logic Tab > BASIC SCRIPT. Up to 50 Scheduled Tasks and 50 Conditional Tasks can be created. Tasks can run once, periodically, or continually depending on its settings. Under the Control/Logic tab, you can observe all of the tasks, their start times, run modes, triggers and actions. Scheduled tasks run at specific times. They can be configured to happen only one time, or on a repeated schedule. Normal/Override The Tasks/Functions tab has a status display which shows the current time of day and whether the Normal or Override schedule is running. An Override Schedule can temporarily cause certain Scheduled tasks to stop operating (i.e., holidays), and resume normal schedules after the Override Schedule expires. Up to 20 Override Schedules can be added. For debug and testing, open the Control Page in another browser window (or another browser) and together with this page you can monitor which tasks are running and what they are doing in response to user input. See Control Logic Examples Using Tasks/Functions for examples of using Tasks for control logic. Conditional (boolean) tasks run only if specified conditions are met (e.g., "If an input is ON then turn a relay ON." -or- "If a temperature sensor is above 32 degrees, send an email alert and turn a relay ON."). Xytronix Research & Design, Inc. Page 101 X-4xx Series Users Manual 3.5.1.1 Scheduled Tasks Scheduled tasks run at a specific time and on specific days of the week (e.g. turn a light on at 08:00 on Monday through Friday or start/clear logging at 04:00 on the first day of the month). Scheduled tasks can also be configured to be conditional based on specified resources. Each Scheduled task can initiate up to three Actions. Actions are control outputs that "do" something such as: turn a remote relay on or off, send an email, send a SNMP trap, or make a data log. Scheduled Tasks appear in a table on the Control/Logic Setup tab and can be created, edited, or deleted as needed. Up to 50 Scheduled Tasks can be created. To add a Scheduled task, click Add Scheduled Task. Task Name: This text field is used to describe the task. By default it is set to "Scheduled Task 1". This field may be up to 24 characters long. Set the name to a descriptive value such as "Unlock Front Door". Run Mode: The Run Mode defines when the scheduled task is active. It has the following options: Always Always active. Normal Schedule Active, unless overridden by an Override schedule. Override Schedule Active only during an Override schedule. Off Never active (disabled). Page 102 Xytronix Research & Design, Inc. X-4xx Series Users Manual Start Date: Select the month, day, and year which the scheduled task is to occur for the first time using the dropdown boxes. Start Time: Set: Select the time of day which the scheduled task is to occur for the first time. Sunrise: Enter the offset (HH:MM) from sunrise. Choose Before or After sunrise. Sunset: Enter the offset (HH:MM) from sunset. Choose Before or After sunset. Note: The sunrise and sunset times are automatically calculated based on the latitude and longitude settings made in the General Settings Tab > GENERAL INFORMATION tab. Condition Scheduled Task (Optional): Scheduled tasks can optionally be controlled (enabled) based on an I/O's state (local and remote). In order for I/O to appear in the condition pull-down menu , the I/O must be first added and named in the I/O Setup tab. The scheduled task only runs if the conditional I/O state evaluates as "true" at the scheduled time. If None is selected, no conditional logic will be evaluated when performing the task. If a Relay resource is selected, the following conditions are available: ON The scheduled task runs if the relay is On OFF The scheduled task runs if the relay is Off If a Digital Input resource is selected, the following conditions are available: ON The scheduled task runs if the input is On OFF The scheduled task runs if the input is Off If a Digital Input Counter resource is selected, the following conditions are available: Value = X.X If the Counter value is equal to the setting, the compare is true. Value >X.X Value < X.X If the Counter value is greater than the setting, the compare is true. If the Counter value is less than the setting, the compare is true. If a 1-Wire Sensor resource is selected, the following conditions are available: Value X.X If the sensor value is greater than or equal to the setting, the compare is true. Value <X.X Deadband If the sensor value is less than the setting, the compare is true. Hysteresis for the compare If an Analog Input resource is selected, the following conditions are available: Value X.X If the analog input value is greater than or equal to the setting, the compare is true. Xytronix Research & Design, Inc. Page 103 Value <X.X Deadband X-4xx Series Users Manual If the analog input value is less than the setting, the compare is true. Hysteresis for the compare (see more details below) If a pseudo Digital Input resource is selected, the following conditions are available: ON The scheduled task runs if the input is On OFF The scheduled task runs if the input is Off If a Register resource is selected, the following conditions are available: Value = X.X If the Register value is equal to the setting, the compare is true. Value >X.X Value < X.X Deadband If the Register value is greater than the setting, the compare is true. If the Register value is less than the setting, the compare is true. Hysteresis for the compare (see more details below) If a Vin resource is selected, the following conditions are available: Value X.X If the Vin value is greater than or equal to the setting, the compare is true. Value <X.X Deadband If the Vin value is less than the setting, the compare is true. Hysteresis for the compare (see more details below) If a Timer resource is selected, the trigger is true when the timer expires (reaches 0). Deadband The Deadband settings prevent alarms from triggering excessively when an analog value vacillates around the trigger point. With high alarms, the value must fall below the high alarm point minus the Deadband and then back above the highalarm point again, before the high alarm will be triggered again. Likewise the Deadband on the low alarm requires the value to rise above the low alarm point plus the Deadband and then back below the low-alarm point again, before the low alarm will be triggered again. For example, if the Deadband is set to 1 degree, and a high alarm is occurs at 95 degrees, the Deadband ensures that once the high alarm is triggered, it won't trigger again until the temperature first drops below 94 degrees (95 1). Actions - Scheduled Task Up to three actions can be specified for each Scheduled Task. Actions can change the state of local and remote I/O, counters, registers, and other resources. To be available in the task's action pull-down menus , the resource must be first added and named in the I/O Setup tab. Page 104 Xytronix Research & Design, Inc. X-4xx Series Users Manual If None is selected, nothing is done when the task runs. If Relay is selected, the following actions are available: On The relay is turned on Off Pulse On The relay is turned off The relay is turned on for the amount of time specified as the pulse time for that relay and then turned off. The pulse time is set for each individual relay in the relay settings under the I/O tab on the device where the relay is physically located. Note: If a new pulse command is set to the relay before the pulse time expires, the pulse timer will be reset to its full value and the relay will remain on until the pulse timer expires. Toggle On/Off The relay changes state to the opposite of its current state. Condition-1 I/O Value The relay is set to the state of the I/O in Condition-1 of the trigger. Opposite of The relay is set to the opposite state of the I/O in Condition-1 of the trigger. Condition-1 I/O Value Pulse On (heartbeat mode) This option is used only for remote relays. While the trigger is true, a continual stream of pulse commands will be sent to the relay. The pulse commands will be sent out at the same rate as the "Poll Interval" which is set for the remote device (under the Remote Devices tab). If the Poll Interval time is less than the pulse time for the relay, the relay will receive pulse commands faster than the pulse timer is allowed to expire, so the relay will remain on until the trigger becomes false or the relay doesn't receive the command due to network failure. This option is useful for "fail safe" applications where it is important to turn the relay off in case of failure. If Digital Input Counter is selected, the following actions are available: Log The counter value is logged Reset Log & Reset The counter is reset to 0 The counter value is logged, then reset to 0 If Register is selected, the following actions are available: Set-To Set the value of the register to a specific value Increment By Decrement By Increment the register by the specified value Decrement the register by the specified value If Timer is selected, the following actions are available: Start Timer Set the timer to the specified value Clear (stop) Timer Reset the timer to 0, and any actions that depend upon the timer will be cancelled. Xytronix Research & Design, Inc. Page 105 X-4xx Series Users Manual If Log is selected, the following actions are available: Log A data log entry is made of the resources enabled in Logging Tab > LOG I/O Reset Log Pause Logging Resume Logging Clear (Erase) the log file Temporarily pause all logging to the log file. Resume logging after previously pausing it. If Email is selected, an email is sent when the task runs. Send Email To With the drop down box, select the Email address to use. The address list is configured in the General Settings tab > Email settings tab. If SNMP TRAP is selected, the following actions are available: Send SNMP Trap for Cond 1 I/O value Send SNMP Trap to Configured SNMP Managers for I/O in Condition 1 Send SNMP Trap for Cond 2 I/O value Send SNMP Trap to Configured SNMP Managers for I/O in Condition 2 Send SNMP Trap for Cond 1 and 2 I/O value Send SNMP Trap to Configured SNMP Managers for I/O in Condition 1 and 2. If SNMP NOTIFICATION is selected, the following actions are available: Send SNMP Notification for Cond 1 I/O value Send SNMP Notification to Configured SNMP Managers for I/O in Condition 1 Send SNMP Notification for Cond 2 I/O value Send SNMP Notification for Cond 1 and 2 I/O value Send SNMP Notification to Configured SNMP Managers for I/O in Condition 2 Send SNMP Notification to Configured SNMP Managers for I/O in Condition 1 and 2. If Remote Services Notification is selected: Send Device State to Remote Service The local device state is sent to the remote services server if configured. If Push I/O State to Remote Receiver Devices is selected: Push I/O State to Remote The state of the module is sent to all remote devices configured to Receiver Devices Action receive such messages. If Set I/O Color is selected, an I/O's status color can be changed on the Control Page. Repeat: The Scheduled Task is repeated: Page 106 Xytronix Research & Design, Inc. X-4xx Series Users Manual No Repeat Runs only once Seconds Repeats once every X seconds Minutes Repeats once every X minutes Hourly Repeats once every X hours Daily Repeats once every X days Weekly Repeats weekly on the selected days of the week Monthly Repeats monthly either on selected days of the month, or the 1st Sunday, etc. Yearly Repeats yearly on the 1st, 2nd, 4th Day of the Start Date Month, or the 1st, 2nd, 4th day of the Start Date every month that year Xytronix Research & Design, Inc. Page 107 X-4xx Series Users Manual 3.5.1.2 Conditional Tasks Conditional tasks occur (run) if certain conditions are met. Conditional tasks are made by comparing specified resources using simple and/or (boolean) logic. For example, if a digital input goes on, turn a relay on. Conditional tasks can be configured to be active continually or only during specific time periods each day/week. Each Conditional Task can initiate up to three Actions. Actions are control outputs that "do" something such as turn a relay on or off, send an email, send a SNMP trap or make a data log. Conditional Tasks are event driven and do not evaluate asynchronously. Their triggers are only evaluated when the conditions of the trigger change state. Conditional Tasks appear in a table on the Control/Logic Setup tab and can be created, edited or deleted as needed. Up to 50 Conditional Tasks can be created. To add a Conditional Task, click the "Add Conditional Task +" button, and a popup window appears. Task Name This text field is used to describe the task. By default it is set to "Conditional Task 1". This field may be up to 24 characters long. Set the name to a descriptive value such as "High Temp Shutdown". Triggers - Conditional Tasks The "Trigger" section is a boolean logic comparison of two I/O. Triggers ONLY occur when the conditions change to true. The logic operations are event driven, and are not combinational. Conditions must change to false and back to true in order to re-trigger. Note: To appear as a condition in the task drop-down menus , the I/O must be first added and named in the I/O Setup tab. The two conditions (arguments) can be evaluated with "AND" or "OR" boolean logic. If both conditions are set to None, the Conditional Task is never evaluated. If one trigger is set to None, only one condition is evaluated for a True or False state. If a Relay is selected the following logic states are available: On The condition is true if the relay is on Off The condition is true if the relay is off Changes The condition is true if the relay changes state Page 108 Xytronix Research & Design, Inc. X-4xx Series Users Manual If a Digital Input is selected the following logic states are available: On The condition is true if the digital input is on Off The condition is true if the digital input is off Changes The condition is true if the digital input changes state If a Digital Input Counter is selected, the following conditions are available: Value =X.X If the Counter value is equal to the setting, the condition is true Value >X.X If the Counter value is greater than the setting, the condition is true Value < X.X If the Counter value is less than the setting, the condition is true. If a 1-Wire Sensor selected, the following conditions are available: Value X.X If the sensor value is greater than or equal to the setting, the condition is true. Value <X.X If the sensor value is less than the setting, the condition is true Deadband Hysteresis for the comparison If Analog Input is selected, the following conditions are available: Value X.X If the analog input value is greater than or equal to the setting, the condition is true. Value <X.X If the analog input value is less than the setting, the condition is true. Deadband Hysteresis for the comparison (see more details below). If a Pseudo Digital Input resource is selected, the following conditions are available: ON If the pseudo digital input is on, the condition is true. OFF If the pseudo digital input is off, the condition is true. If a Register is selected, the following conditions are available: Value =X.X If the Register value is equal to the setting, the condition is true Value >X.X If the Register value is greater than the setting, the condition is true. Value < X.X If the Register value is less than the setting, the condition is true. Xytronix Research & Design, Inc. Page 109 X-4xx Series Users Manual If a Vin selected, the following conditions are available: Value X.X If the Vin value is greater than or equal to the setting, the condition is true. Value <X.X If the Vin value is less than the setting, the condition is true. Deadband Hysteresis for the comparison (see more details below). If a Timer is selected, the condition is true when the timer expires (reaches 0). Deadband The Deadband settings prevent alarms from triggering excessively when an analog value vacillates around the trigger point. With high alarms, the value must fall below the high alarm point minus the Deadband and then back above the highalarm point again, before the high alarm will be triggered again. Likewise the Deadband on the low alarm requires the value to rise above the low alarm point plus the Deadband and then back below the low-alarm point again, before the low alarm will be triggered again. For example, if the Deadband is set to 1 degree, and a high alarm is occurs at 95 degrees, the Deadband ensures that once the high alarm is triggered, it won't trigger again until the temperature first drops below 94 degrees (95 1). During Conditional Tasks Conditional tasks can be configured to run continually or during specific days each week. Always Runs continually. Set Time Specify the time interval and day(s), when this task will evaluate. Note: If the Start Time begins after the end time (i.e., Start Time: 8:00pm, End Time: 6:00am), then the time interval will start and continue through the end time of the next day. Actions Conditional Tasks Up to three actions can be specified for each Conditional Task. Tasks can change the state of a remote relay, counters, registers and other remote I/O. To be available in the task's action pull-down menus , the resource must be first added and named in the I/O Setup tab. If None is selected, nothing is done when the task runs. If a Relay Action is selected the following actions are available: On The relay is turned on Page 110 Xytronix Research & Design, Inc. X-4xx Series Users Manual Off The relay is turned off Pulse On The relay is pulsed on (then off) Toggle On/Off The relay changes state Condition-1 I/O Value The relay is set to the state of condition 1 I/O Opposite of Condition-1 I/O The relay is set to the opposite state of condition 1 I/O Value Pulse On (heartbeat mode) The relay is pulsed continually over and over while the trigger is true. When the trigger changes to false, the relay will go off. This is useful for remote relays and detecting network drop-outs, etc. If a Digital Input Counter Action is selected, the following actions are available: Log The counter value is logged Reset The counter is reset to 0 Log & Reset The counter value is logged, then reset to 0 If Register is selected, the following actions are available: Set-To Set the value of the register to a specific value Increment By Increment the register by the specified value Decrement By Decrement the register by the specified value If Timer is selected, the following actions are available: Start Timer Set the timer to the specified value Clear Timer Resets the timer to 0 If Log is selected, the following actions are available: Log A data log is made of the resources enabled in Logging Tab > LOG I/O Reset Log Clear (Erase) the log file Pause Logging Temporarily pause all logging to the log file Resume Logging Resume logging after previously pausing it If Email is selected, an email is sent when the task runs. Send Email To With the drop down box, select the Email address to use. The address list is Xytronix Research & Design, Inc. Page 111 X-4xx Series Users Manual configured in the General Settings Tab > EMAIL SETTINGS tab. If SNMP TRAP is selected, the following actions are available: Send SNMP Trap for Cond 1 I/O value Send SNMP Trap to configured SNMP Managers for I/O in Condition 1 Send SNMP Trap for Cond 2 I/O value Send SNMP Trap to configured SNMP Managers for I/O in Condition 2 Send SNMP Trap for Cond 1 and 2 I/O value Send SNMP Trap to configured SNMP Managers for I/O in Condition 1 and 2 If SNMP NOTIFICATION is selected, the following actions are available: Send SNMP Notification for Cond 1 I/O value Send SNMP Notification to configured SNMP Managers for I/O in Condition 1 Send SNMP Notification for Cond 2 I/O value Send SNMP Notification to configured SNMP Managers for I/O in Condition 2 Send SNMP Notification for Cond 1 and 2 I/O Send SNMP Notification to configured SNMP value Managers for I/O in Condition 1 and 2. If Remote Services Notification is selected: Send Device State to Remote Service The local device state is sent to the remote services server if configured. If Push I/O State to Remote Receiver Devices is selected: Push I/O State to Remote Receiver Devices The state of the module is sent to all remote devices configured to receive such messages. If Set I/O Color is selected, an I/O's status color in the Control Page can be changed. Page 112 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.5.1.3 Automatic Reboot Tasks The module can function as a reboot controller with fully configurable setup options. It can be used to reboot servers, computers, satellite modems and other devices if they fail to respond to pings sent from the device. The device pings a device on a network, and if unresponsive, starts, stops, or reboots the device connected to a ControlByWeb device's relay. Automatic Reboot Tasks appear in a table on the Control/Logic Setup tab and can be created, edited or deleted as needed. Up to 16 Reboot Tasks can be created. The status field in each Reboot Task dynamically shows what the task is doing. For example, status messages such as: "Waiting for 1st Ping: 25 sec", or "Pinging, Failed Pings: 5, Reboot Attempts:10" will appear. There are three ways that the ControlByWeb device can be wired to reboot a device. All three reboot methods have different requirements for wiring connections and relay timing. Connect a ControlByWeb device's relay series with the power source of the device you would like to reboot. Simply switch the power off then on. If the AC line voltage is to be switched off, a line-voltage interposer relay may be needed depending on the ControlByWeb device's relay specifications. If the DC power to a modem or other device is to be switched off, the DC connections can be made to one of the internal relays in the ControlByWeb device. Some relays share a common, such as in the four relays of the X-410, so in this case the other relays cannot be connected to other loads. If the other relays are needed, use an interposer relay to switch the DC power to the device to be rebooted. 1. Connect a ControlByWeb device's relay in parallel with the on/off switch of the device. This is useful for devices with momentary power buttons that will not automatically start operating when power is applied. These devices require a user to momentarily press a switch before the device will boot. An interposer relay may or may not be needed. 2. Connect a ControlByWeb device's relay to the reset button or circuit of a device. In this configuration, the device does not power down the device, but simply forces the device to reset. To add an Automatic Reboot task, click Add Auto Reboot Task. Task Name This text field is used to describe the task. By default it is set to "Reboot Task 1". This field may be up to 24 characters long. Set the name to a descriptive value such as "Server Watchdog". Ping IP Address/Name This is the IP address or hostname that the ControlByWeb device will ping. This is typically the IP address or hostname of the device that will be re-booted upon failure (such as a server, router, computer, etc.). It could however, be the address of a device on the opposite side of a communications link. This is useful to auto reboot communications devices such as CSU/DSUs, satellite modems, routers, etc. Xytronix Research & Design, Inc. Page 113 X-4xx Series Users Manual Ping Interval This is the time interval (in seconds) between successful ping requests. This time can be set from 1 to 6000 seconds (100 minutes or 1.67 hours). Unsuccessful Ping Interval When ping requests fail (no response from device), it may be desirable to begin pinging at a shorter time interval. This allows the ControlByWeb device to determine in less time that the device is not functioning. After each unsuccessful ping, the device will wait this time interval (in seconds) before the next ping attempt. This time can be set from 1 to 6000 seconds (100 minutes or 1.67 hours). Delay Before First Ping After Reboot When the ControlByWeb device determines it's time to reboot a device due to loss of communication, it will wait this time interval (in seconds) before beginning to ping the device after the relays the device is connected to have power cycled the device. This time delay allows the device to boot before being pinged. This time can be set from 0 to 6000 seconds (100 minutes or 1.67 hours). Delay Before First Ping After Reboot The device will be rebooted after this number of consecutive ping failures. This number can be set between 1 and 255. Max Reboot Attempts After the device has been re-booted this number of times without any successful pings, it is assumed that there are problems with the device and the ControlByWeb device will no longer attempt to reboot the device. At this point, the device will leave the device on and continue pinging the device, but will not reboot the device anymore. Once the device responds to pings again, the device will return to pinging and rebooting the device. This number can be set between 2 and 255. Reboot Timer (T) Timer value used in reboot option. If the power source to the device is controlled by a relay, this is the time the power is switched off. If the relay is connected to the on/off switch, this is the time the on/off switch is momentarily activated. If the relay is connected to the reset circuit, this is the time the reset is momentarily activated. This time can be set from 1 to 6000 seconds (100 minutes or 1.67 hours). Reboot Options: Pulse Relay Off T seconds Connect the NO contacts of the interposer relay to the AC power line of the device being monitored. If the device fails to respond to pings, the power is turned off, then on. Pulse Relay On T seconds Connect the NC contacts of an interposer relay to the AC power line of the device being monitored. If the device fails to respond to pings, the power is turned off, then on. Connect the NO contacts of the relay to the reset circuit of the device being monitored. If the device fails to respond to pings, the reset is momentarily activated. Turn Relay OFF until successful ping resumes Turn Relay ON until successful ping resumes If the device is unresponsive, stop the device connected to a relay If the device is unresponsive, start the device connected to a relay Page 114 Xytronix Research & Design, Inc. X-4xx Series Users Manual Relay/Register With the drop-down box, select the relay (or register) from the list that will reboot the monitored device. A Register can be used in applications where more complex logic or control is needed and a Task monitors the Register to initiate a reboot. Use a Register and Task for example, if reboots are wanted only on a schedule during certain times each day. Email Notifications Email notifications of a reboot sequence can be Enabled or Disabled. If enabled, an email will be sent whenever the device is rebooted. The email will actually be queued until the device is back up, in case the device is needed in order to send a successful email. Select Email Address With the drop-down box, select the Email address to send reboot notifications. The address list is configured in the General Settings Tab > EMAIL SETTINGS tab. Xytronix Research & Design, Inc. Page 115 X-4xx Series Users Manual 3.5.1.4 Override Schedules Override Schedules temporarily disable Scheduled Tasks that are set to Normal Schedule in the Run Mode column. It enables any Scheduled Tasks that are set to Override Schedule. Tasks that are set to Always will not be effected by any Override Schedules. Override Schedules are especially helpful for creating holiday schedules. Override Schedules appear in a table on the Control/Logic Setup tab and can be created, edited, or deleted as needed. The module supports up to 20 different override schedules. A task running on a Normal schedule can be setup by an Administrator (with Administrator credentials) and can be used, for example, to open door locks during office hours. Override schedules allow the normal schedule to be temporarily disabled without disturbing the underlying schedule. For example, an employee (with Manager credentials) can temporarily change the schedule to accommodate a special holiday without the need to change or adjust the Normal schedule. An example of this would be the 1st of January. An override schedule could be created that starts 00:00 on January 1st and ends at 23:59 on January 1st. This override schedule would stop normally scheduled tasks from running every year on the 1st of January. Override schedules are periodic annually (e.g., the event will occur every year at the same time.) To add an Override Schedule, click Add Override Schedule. Click the Edit button to edit an override schedule, click the "X" button to delete an override schedule. Name: This text field is used to describe the override schedule. By default it is set to "Override Schedule 1". This field may be up to 24 characters long. Set the name to a descriptive value such as "Office Closed". Start Day/Time: Different options will appear depending on the option you choose: Choose "On the" to enter a start day of the month, start time, and duration (days) for the override schedule. Choose "On" to enter a specific start date and time, and a specific end date and time. Page 116 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.5.2 Control Logic Tab > BASIC SCRIPT The module can run simple custom programs written in a modified version of BASIC. This page is used to load and execute these programs. Before it can be loaded to the module, a script must first be prepared as a text (.txt) file. The file must then be uploaded to the module via the Basic Script tab. The maximum size of script that can be uploaded to the device is 4K bytes. Information on writing a basic program for the module can be found in BASIC ScriptsBASIC Scripts. See Control Logic Examples Using BASIC Scripts for examples of BASIC scripts. Note: An ASCII standard text file format should be used, such as Windows Notepad, Programmer's Notepad, vi, or other text editor that output the file as a .txt. Rich Text Format (.rtf) used by Microsoft WordPad is NOT compatible. Currently Loaded Script This field displays the .txt file that is uploaded to the module. The script (text) displayed on this screen cannot be edited. In order to edit any script, the .txt file must be edited externally and uploaded to the device again. Basic Script File To upload a basic script file to the device, click Basic Script File. A file upload dialog box opens which allows you to choose the file to upload. To upload the script, click Open. Interpreter Status This field displays whether the program is continuing to run, has stopped or finished, or if there are errors contained in the script. If there are errors in the script, the line on which the error occurred is displayed. Clicking the Refresh Status button will update this field. Xytronix Research & Design, Inc. Page 117 X-4xx Series Users Manual Run Script This option selects whether or not the selected script will run after it has been uploaded. The Submit button must be clicked to run the script. BASIC I/O Tokens After I/O resources are added and named, they can be controlled and monitored within BASIC scripts. BASIC scripts must reference I/O resources (relays, temp sensors, digital and analog inputs, etc.) in the form of a token, which is the characters "io" followed by the name of the resource (e.g., io.name). If the resource name has embedded spaces, they must be removed in the io.name token. The first character must be lower case. For example, if a relay is named "Warehouse Fan", the fan can be turned on with the BASIC statement "LET io.warehouseFan = 1". If a resource name is changed, the resource name in the BASIC script must be renamed to match. The button, "View Basic I/O Tokens" displays a list of all of the I/O resources currently available together with the equivalent token to be used in BASIC scripts to reference the respective I/O resource. Note: This screenshot was taken from the X-410 device. Other ControlByWeb devices will show different I/O Names and Basic I/O Tokens. Page 118 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.6 Logging Tab Record data such as changes in I/O state, sensor data, and events. Both periodic and event-based logging are supported. The logged data is stored in internal nonvolatile memory and can be retrieved by entering the command http://{module's IP address}/log.txt. For more information on logging, see Section Log Files. The module can make up to 30 log entries per second with event-driven logging. Each log entry has a time stamp with millisecond resolution. Two Conditional Task actions are available to pause and resume logging. The log is stored in non-volatile, flash memory using a circular buffer (oldest data is over written). On all X-400 series devices 3072kB of memory space is reserved for logging accept for the X-410 which has 512 kB of memory space reserved. Log entries are composed of the following components, 30-byte header, 16-bytes for relays, 16-bytes for inputs, and 4 bytes for each analog value being logged (counters, 1-Wire sensors, vin, registers, etc). The space allocated for relays and inputs does not change depending on whether any relays or inputs are being logged. Note: Changing the log settings will erase the current log file. 3.6.1 Logging Tab > GENERAL LOGGING SETTINGS Enable Logging When this option is set to Yes, the module will record data as configured on this page. The default setting for this option is No. Note: This option controls data logging, but not system logging. System logging is always enabled. Start Time If a logging interval is specified (periodic logging rather than event logging), logging will occur relative to this start time. For example, if the start time is 01:00 and the Interval is 6 hours, logging will occur at 01:00, 07:00, 13:00, and 19:00. Start time is specified in 24-hour time format. Note: If "Event Only" is selected, this setting has no effect. Interval This field is used to specify the time period of logging. A numerical value is entered into the text field, and the unit of time is selected using the adjacent radio buttons. The range of values in this field is 1-60. Time units are Minutes, Hours, and Days. Select Event Only to disable periodic logging. Note: If "Event Only" is selected, this setting has no effect. Next Log Time This field shows when the next periodic log event is scheduled to occur. If logging is disabled, the next log time will indicate "Disabled." If logging is enabled, but periodic logging is disabled (by Xytronix Research & Design, Inc. Page 119 X-4xx Series Users Manual selecting Event Only) the next log time will indicate "Event Logging Only." Note: This information is updated only when the page is refreshed. 3.6.1.1 Logging Tab > LOG I/O This setup page is used to select which resources are logged, and which resources asynchronously trigger logging. Whenever a log event (triggered or periodic) occurs, each resource which has its Log check-box enabled will be included in the periodic log. If a resource has its Trigger Log Event check-box enabled, a log will asynchronously occur when that resource changes its state or value. Trigger and Delta Analog resources log data when the value changes by the amount specified in the Delta fields. The default setting for these fields is shown below. Sensor Vin Registers Temperature Humidity Trigger Delta 2.0 V 2 2º 2% Page 120 Xytronix Research & Design, Inc. X-4xx Series Users Manual Asynchronous Log Events Digital Inputs or Relays Logging will occur whenever the stat of that I/O changes. 1-Wire Sensors Logging will occur whenever the sensor changes by the trigger delta. Registers Logging will occur whenever the Register changes by the trigger delta. Vin Logging will occur whenever the Vin voltage changes by the trigger delta. 3.6.1.2 Diagnostic Settings XML, MODBUS, and SNMP requests received by the module can generate a log entry. Each communication protocol has a check-box to enable logging for that protocol. Exclude Logged Requests When logging is enabled for XML Requests, Modbus Requests, or SNMP Requests, you can filter out Reads (such as reading inputs' states via an XML request) or Writes (such as changing the output state via an XML command). On the Control Page Setup tab, you can specify the refresh rate of the Control Page. Each time the page is refreshed, an XML request is sent and logged as a Read. Since the default refresh rate is 3 seconds, the log file can get cluttered by many XML request logs. By filtering out Reads, refresh requests will not be logged. Likewise, by selecting Writes, write requests will not be logged. The default selection is None. 3.6.1.3 Send Log File The module can be configured to send its log file to a remote server at a specific time once per day. The file can be emailed and/or uploaded to an FTP server. Only new log entries since the last successful upload, are sent. The log file is not deleted. Xytronix Research & Design, Inc. Page 121 X-4xx Series Users Manual Daily Send Time Select the time each day (24-hour format) the log file is to be sent. Email Log File If this check-box is enabled, a log email will be sent daily. The log email will contain entries that are new since the last successfully sent log email. When this box is checked, a drop-down box and Test Log Email button appear. Using the drop-down box, select the email address to send daily log. The address list is configured in General Settings Tab > EMAIL SETTINGS. The Test Log Email button causes the log file to be emailed immediately, without waiting until the daily send time. FTP Upload Log File If this check-box is enabled, the log file is sent to an FTP server once each day. Only the log entries that are new since the last successfully FTP upload will be sent each day. Host Name The IP address or hostname of the remote FTP server is entered here. The default value is 192.168.1.15 Connection Security Choose None, Implicit TLS, or Explicit TLS. The security and port number must be configured to match the FTP server. The None option uses no encryption on the connection. Implicit TLS uses SSL to encrypt the channel before any FTP commands are sent or received. Explicit TLS allows the connection to start unencrypted and then upgrades the connection to encrypted through FTP commands. Port The TCP port number of the FTP server. This must match the TCP port set in the FTP server. The valid range is 1 to 65535. The default port number is 21. Page 122 Xytronix Research & Design, Inc. X-4xx Series Users Manual User name The username for connecting to the FTP server. Password If the FTP server requires a password, the password is entered here. FTP Path/Filename When uploading the log file to an FTP server, the FTP server will have a default location where it will place the log file. This field is used to define the filename of the log file stored on the FTP server. Sub-directories can also be defined here. The actual filename used for saving the file on the FTP server will be the specified file name with the date and time appended to it. For example log.txt would be log_YYYYMMDDHHMMSS.txt where YYYY is the year, MM is the month, DD is the day of the month, HH is the hour, MM is the minutes, and SS is the seconds. This date and time comes from the module, and is the time that the module uploaded the file. Test FTP Log The Test FTP Email button causes the log file to be sent immediately. If nothing is in the log file, no file will be sent. The log information sent when this button is pressed will not be sent again when the button is pressed again or at the daily upload time. Xytronix Research & Design, Inc. Page 123 X-4xx Series Users Manual 3.7 Monitor and Control Tab Under this tab there are buttons for viewing and customizing the Control Page as well as graphing the log file. 3.7.1 Monitor & Control Tab > CONTROL PAGE This button displays the current Control Page. The Control Page is what users typically use to control and monitor I/O on this device. You can access the Control Page either through the setup menu, or directly by entering the IP address of this device into the address bar of a web browser. The Control Page is highly configurable. The Control Page Setup tab determines which resources are shown on the Control Page and how they are presented and displayed. Here's an example of a Control Page of an X-400 module: This example shows an X-400 with a temperature sensor, register (named Master Relay Switch), and eight relays that were added from an X-12s expansion module. Note: If a sensor is disconnected or fails, the data value will be shown as x.xx in yellow. Page 124 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3.7.2 Monitor & Control Tab > CONTROL PAGE SETUP The content, format, and presentation of the Control Page is configured on this page. For example, the settings below illustrate the settings for the Control Page shown in the previous section. After making changes to the header, logo, footer, and control ordering, you must click the Submit button for the changes to take effect. Note: Any browsers currently viewing the Control Page while making changes will need to be refreshed before seeing the new changes. Do this by clicking the refresh button on your browser. Header Text The text entered here appears at the top of the Control Page. It also appears in the header of the email text when the email notification is used. This field can be up to 30 characters in length. Show Header Logo A graphic logo can be displayed in the upper left-hand corner of the Control Page. This setting enables or disables displaying the logo. Xytronix Research & Design, Inc. Page 125 X-4xx Series Users Manual Header Logo The ControlByWeb logo is shown by default. To upload a new logo, click Choose New Logo. A file upload dialog box opens, allowing you to browse for the file on your computer. The file must be a *.png format. Click the button to initiate the file upload. The logo file size must be less than 12k bytes. Once a logo has been uploaded, the default ControlByWeb logo will be overwritten. The ControlByWeb logo will not be restored if the device is reset to factory defaults (there is only room for one logo.) Footer Text/HTML The bottom of the Control Page has a configurable "footer" field. The text entered in this setup box appears as a footer on the Control Page. The text can include HTML hypertext links as shown in the example. Refresh Rate The Control Page continually updates its contents by setting a timer in the web page that causes it to be reloaded at a specified time interval. The web page content will be refreshed at the time interval specified in this setting. It can be set from 1 to 60 seconds. The default Refresh Rate is 3 seconds. Slower refresh rates will use less network bandwidth. Control Page Widgets A list of I/O resources that can be added to the Control Page appear next. The "widgets" appear on the Control Page in the same order as the setup list. Resources such as analog inputs automatically appear in this list and can be removed from the Control Page, if desired. For all other I/O (registers, counters, timers, etc.), you must have previously added them in I/O Setup tab before adding them to the Control Page. To add one or more widgets, click the Add I/O to Control Page button To edit a widget, click the Edit button To remove a widget, click the Delete button. To re-arrange the order of the widgets, click the widget handle and drag the widget to a different row. When finished, click to Submit at the bottom of the page to save your edits. To change the name of the resources (analog inputs, registers and Vin) on the Control Page, edit the respective settings in the I/O Setup Tab and change the resource name. While naming each resource, it is good practice to edit the associated status text. For example, for a digital input perhaps name the input "Warehouse Door", set the On Status Text to "Door is Open" and the Off Status Text to "Door is Closed". Some widgets have more setup options than others. Widgets for the analog inputs, Vin and timers can be added but have no options to edit. Once the I/O has been added, rearrange the I/O by clicking on the icon and dragging to the desired position. Click Submit once you have the finished making changes to the page. Page 126 Xytronix Research & Design, Inc. X-4xx Series Users Manual Add I/O to the Control Page To add one or more I/O, click the Add I/O to Control Page button. From the list of available I/O resources, check one or more Add boxes to add the selected resources to the Control Page. After adding the desired widgets you can edit the widgets one by one, as needed, for the desired appearance and function. The visual presentation of the labels, buttons and colors can be highly configured. The display options available for the widgets depend on the specific I/O. Note: Certain I/O resources (analog inputs, 1-Wire sensors, etc.) do not have edit buttons/widgets on the Control Page Setup tab; however, the I/O information can be configured in the I/O Setup tab. Gap Widgets Gap widgets are cosmetic widgets that allow sections of the Control Page to be separated by a small space. This is useful when grouping similar controls together. 1-Wire Sensor Widget Editor There is no widget editor for 1-Wire sensors. The information which will appear on the Control Page will be configured in the I/O Setup tab > 1-Wire Sensors. Xytronix Research & Design, Inc. Page 127 X-4xx Series Users Manual Relay Widget Editor State Show or Hide the relay state. On Status Color This setting specifies the color that will be displayed on the Control Page when the relay is On. Options are Red, Green, Yellow, Blue and White. The default color is Green. Off Status Color This setting specifies the color that will be displayed on the Control Page when the relay Off. Options are Red, Green, Yellow, Blue and White. The default color is Red. ON Button Show or Hide the On button. ON Button Label The text in this field specifies the text that will be displayed on the ON Button on the Control Page to turn on the relay. Up to 16 characters may be entered in this field. The default text is "On". Off Button Show or Hide the Off button. OFF Button Label The text in this field specifies the text that will be displayed on the OFF Button in the Control Page to turn off the relay. Up to 16 characters may be entered in this field. The default text is "Off". Toggle Button Show or Hide the Toggle button. Toggle Button Label The text entered in this field appears in the 'Toggle' button. Up to 16 characters may be entered in this field. The default text is "Toggle". Pulse Button Show or Hide the Pulse button. Pulse Button Label The text entered in this field appears in the 'Pulse' button. Up to 16 characters may be entered in this field. The default text is "Pulse". Page 128 Xytronix Research & Design, Inc. X-4xx Series Users Manual Digital Input Widget Editor State Show or Hide the state (value). On Status Color This setting specifies the color that will be displayed on the Control Page when the input is considered On. Options are Red, Green, Yellow, Blue and White. The default color is Green. Off Status Color This setting specifies the color that will be displayed on the Control Page when the input is considered Off. Options are Red, Green, Yellow, Blue and White. The default color is Red. Input Counter Widget Editor Count/Frequency Show or Hide the counter/frequency value. Allow reset in control page When enabled, the count value on the Control Page may be clicked to reset the counter's value back to 0 after confirmation. Analog Input Widget Editor There is no widget editor for analog inputs. The information which will appear on the Control Page will be configured in the I/O Setup Tab > Analog Inputs. Xytronix Research & Design, Inc. Page 129 X-4xx Series Users Manual Register Widget Editor Registers can be changed externally through the Control Page, XML requests, ModBus, or the BASIC script. This allows a BASIC script to react to user input. These variables are considered to be floating point numbers, just like other variables in the BASIC script. Status: State Show or Hide the state (value). Control Buttons: There are four different types of control buttons for a register widget, each types has different options: 1. Type = Increment/Decrement Increment Button Show or hide the button Decrement Button Show or hide the button Step This setting is the amount the Register will be incremented or decremented when the respective increment/decrement button is clicked. The value can be an integer or floating point number. 2. Type = Custom Buttons This setting provides up to 4-buttons with custom labels and set-values. Use one or more of these buttons to force a Register to specified fixed values. Use these buttons for example, to provide a fan speed control with buttons labeled High, Medium and Low and perhaps with 100%, 50% and 20% for the button setvalues. Button (1-4) Show or Hide the button. Label (1-4) The text in this field specifies the text that will be displayed in the button. Up to 16 characters may be entered in this field. Value (1-4) When the user clicks the button, the Register defined in the Widget being edited will be set (forced) to the specified fixed value. The setting can be any integer or floating point value. Page 130 Xytronix Research & Design, Inc. X-4xx Series Users Manual 3. Control Button Type = Text Box Use this setting to allow the user to manually change the value of a Register. The input can be an integer or floating point value. The input value can be restricted between minimum and maximum values defined by settings for the Register itself. See Section I/O Setup Tab > Registers Use this input field for example, to enter a thermostat set-point value. 4. Analog I/O Status Colors The status colors of analog I/O (analog inputs, 1-Wire sensors, thermocouples, Vin, high-frequency inputs, analog outputs, timers, counters, on timers, total on timers) can be changed by creating Tasks under Control/Logic which set the I/O status colors. 5. Digital Input and Relay Status Colors The status colors of digital inputs and relays can be configured directly in their respective control page widgets. 3.7.3 Monitor & Control Tab > GRAPH LOG FILE The data in the log file can be displayed in a graphical format. Use this page to configure and view the graph. With the Start and End settings you can "zoom in" to display the data over a specific time interval. When the Graph is first loaded, the last 24 hours of the log file are downloaded and displayed. Pressing the "Graph Last 24 Hours" button will update the graph with the last 24 hours of the log file. Pressing "Graph Selected Date/Time" will update the graph with the selected range of time in the Start/End dropdown menus. Note: The larger the range of time, the longer it takes to download the log file for graphing. 3.7.3.1 Settings Select I/O Select which I/O from the log file is to be graphed. Up to 10 I/O can be graphed at one time. Start Date & Time This is the start time for the graph. Select the month, day, year and time of day using the drop-down boxes. End Date & Time This is the stop time for the graph. Select the month, day, year and time of day using the drop-down boxes. Xytronix Research & Design, Inc. Page 131 X-4xx Series Users Manual 3.7.3.2 Graph The graph includes a legend describing the colors and I/O in the top-right corner of the graph. The graph is interactive in that if the mouse is hovered over a specific data-point, it displays the precise value. To zoom in on a specific region of the graph, click and drag to highlight the area of interest. To return to a normal zoom, click the Graph button. Page 132 Xytronix Research & Design, Inc. X-4xx Series Users Manual Section 4: Control Page The Control Page is normally what users see and use and it can be highly configured to fit your needs. The Monitor & Control Tab > CONTROL PAGE SETUP tab has settings that determine what resources are displayed and how they are formatted. Administrators, Managers and Users have separate access privilege to the Control Page. See Error: Reference source not found for a description of each access privilege. 4.1 Browser Operation There are two ways users can access the Control Page by using a web browser: 1. Control Page The first is by typing the IP address of the module directly into the web browser address bar. For example, using the default IP address, the user would enter http://192.168.1.2 (If the IP address was changed from the default, the user must use the new IP address.) Note that if any port is used other than the default port 80, the port must also be included in the request. For example, accessing the unit at port 8000 would be as follows: http://192.168.1.2:8000 To access the module using HTTPS, the user would enter: https://192.168.1.2 If any port is used other than the default HTTPS port 443, the port must also be included in the request. You will usually get a warning when accessing the module over HTTPS, this is because the module is using a default, self-signed SSL certificate. The I/O on the Control Page updates every three seconds unless the update interval has been changed in the Control Page Setup. 2. Control Page via Setup Page Tabs The second method of accessing the Control Page is through the Setup Page tabs (http://192.168.1.2/setup.html). Choose Monitor & Control Tab > CONTROL PAGE. Xytronix Research & Design, Inc. Page 133 X-4xx Series Users Manual Section 5: Example Control Scenarios This section presents various control examples using Scheduled Tasks, Conditional Tasks, and BASIC scripts to solve example applications. 5.1 Control Logic Examples Using Tasks/Functions The following examples illustrate tasks or functions that can be performed by the module. These examples may be used as a tutorial to illustrate how to perform certain functions and can be a good starting point for more advanced logic. Important: When creating tasks that perform actions when something is triggered, the action will not automatically reverse when the trigger goes away. For example, if a trigger turns a remote digital output on when temperature rises above 50 degrees, you must create a second task to turn the digital output off when the temperature falls below 50 degrees. Page 134 Xytronix Research & Design, Inc. X-4xx Series Users Manual 5.1.1 Send an email if the temperature is less than 33°C between 9:30PM and 10PM each day In this example the Deadband of 1 degree was used to prevent multiple email messages being sent due to "chatter". Another email message won't be sent until the temperature rises above 34 degrees (33 plus 1 degree deadband) and then back below 33 degrees. The "During" section of the task limits the time when the triggers are effective to 9:30 P.M. and 10:00 P.M. every day of the week. Outside this window email messages will not be sent even if the temperature drops below 33 degrees. Xytronix Research & Design, Inc. Page 135 X-4xx Series Users Manual 5.1.2 Send Email if Input 1 stops toggling Monitor Pseudo Digital Input 1 for state changes. If Input 1 doesn't change state every 5 seconds or faster an email message will be sent. This is using two tasks. Task 1 starts (or re-starts) a timer each time the pseudo input changes. Task 2 sends the alert if the timer ever expires. Page 136 Xytronix Research & Design, Inc. X-4xx Series Users Manual 5.1.3 Send an email message every 24 hours Xytronix Research & Design, Inc. Page 137 X-4xx Series Users Manual 5.1.4 Network monitor between two X-400 modules (advanced) In this example we will configure two X-400 devices to share a register. In the example we are using this as a network monitor, but this example illustrates how to share register or I/O states between modules. One X-400 (we will call X-400_ONE) will be configured to share a register with a second X-400 (we will call X-400_TWO). X-400_ONE will change that register value once every 10 seconds. X-400_TWO will monitor that register value. If X-400_TWO detects no changes to the register for more than 12 seconds it will send an email alert. Setup X-400_ONE communications with X-400_TWO: 1. Connect both devices to the network and assign IP address to each of them. 2. Open the setup page for X-400_ONE and select "Remote Devices" tab. Click the "Find Devices" button. The other X-400 (X-400_TWO) should appear in the list. If multiple X-400 units are installed on the network you may need to identify it by serial number. Select that X-400 device so the "Add Remote Device" window appears. Within that window... · Name the device "X-400_TWO" · Select Model X-400 (should already be selected) · Serial number should be filled in with correct serial number. · IP address should have correct IP address for X-400_TWO and port should be correct. · Set up the security options and enter passwords for X-400_TWO · In the bottom portion of the window, select "Instant Send" · Click "Add Device" Wait a minute and then you should see X-400_TWO in the Remote Device List and the status should indicate a response time (in milliseconds) from the remote unit (the smaller the response time the better). Now X-400_ONE is set up to push its I/O state to the remote device. By default it will push the state every 3 seconds (PUSH interval) but we want it to push its state instantly when the register changes so we will set that up in Conditional Tasks. Setup of X-400_ONE to toggle register and share it with X-400_TWO (add two Conditional Tasks): 1. Open setup page for X-400_ONE (should already be there from above setup) 2. Set up a timer (called Timer 1) with a Power Up value of 8 seconds. This timer will be used to change the register and the Power Up value will cause it to start automatically. 3. Set up a task and call it "Toggle Register to 1". Set the trigger to "Timer 1 Expires AND Register 1 = 0". Set the Actions to "Set Register 1 to 1" and "Start Timer 1 for 10 Seconds" and "Push I/O State To Remote Receiver Device" 4. Set up a task and call it "Toggle Register to 0". Set the trigger to "Timer 1 Expires AND Register 1 = 1". Set the Actions to "Set Register 1 to 0" and "Start Timer 1 for 10 Seconds" and "Push I/O State To Remote Receiver Device" Setup of X-400_TWO to monitor the register from X-400_ONE and sent alert if the register doesn't change within 12 seconds: 1. Open setup page for X-400_TWO and select Remote Devices tab. You should see X-400_ONE in the list of devices but the name will show as the serial number rather than the name X- Page 138 Xytronix Research & Design, Inc. X-4xx Series Users Manual 400_ONE. You can click edit and change the name to X-400_ONE. If the X-400_ONE device doesn't appear in the list you will need to add it to the list manually. 2. Once the X-400_ONE device appears as one of the Remote Devices you will need to add its register to the local I/O. Click on I/O Setup, then Registers. At the bottom of the table, click on the button called "Add Remote Register". Add the register "X-400_ONE Register 1" to the list. You should now see this new register listed under "Remote Register". 3. We need a timer to go to I/O Setup and create a timer called "Timer 1". Give it a power up value of 30 seconds to make sure both X-400 units have plenty of time to boot before sending error messages. 4. Now add the logic. Click on "Control/Logic" and create a new Conditional Task. Call this task "Set Timer When 1". Set trigger Condition 1 to "X-400_ONE Register 1 = 1". Set Action 1 to "Start Timer" with a time of 12 Seconds. 5. Add a second Conditional Task. Call this task "Set Timer When 0". Set trigger Condition 1 to "X400_ONE Register 1 = 0". Set Action 1 to "Start Timer" with a timer of 12 Seconds. 6. Add a third Conditional Task. Call this task "Send Alarm". Set trigger Condition 1 to "Timer 1 Expires". Set Action 1 to "Send Email" and specify the email address where the message should go (if no email addresses appear you will need to set them up first). Xytronix Research & Design, Inc. Page 139 X-4xx Series Users Manual 5.2 Control Logic Examples Using BASIC Scripts Most advanced logic tasks can be accomplished using the module's Task Builder; however, the module has a BASIC interpreter that can be used for more advanced tasks. I/O resources are not fixed on the module. After registers and other I/O are added, they can be used within BASIC scripts. BASIC scripts must reference I/O resources such as digital I/O in the form of io.name where "name" is the resource name defined for each I/O under the I/O Setup Tab. If the resource name has embedded spaces, they must be removed in the io.name statement. The first character must be lower case. For example, if a digital I/O is named "Warehouse Fan", the fan can be turned on with the BASIC statement "LET io.warehouseFan = 1". If a resource name is changed during development and testing, the resource name in the BASIC scrip must be renamed to match. 5.2.1 If an analog input is in the alarm state, send an email every hour. DO 'If 2.5 < sensor1 < 4.5 then send an email every 1 hour IF io.temp1 < 4.5 THEN IF io.temp1 > 2.5 THEN IF t0 = 0 THEN EMAIL LET t0 = 36000 END IF END IF END IF '3600 seconds LOOP END Page 140 Xytronix Research & Design, Inc. X-4xx Series Users Manual 5.2.2 Monitor 4 doors, send an Email if a door is open more than 5-minutes Send an email if a door has been open for more than 5 minutes, repeat the email every 5 minutes thereafter while the door is open. Note, we use the digital input mode of the analog inputs for this scenario. 'Send an email alert after a door has been open for more than 5 minutes. 'Continuously set a timer for 5 minutes if the door is closed 'Setting initial timer values 'Using variables a-d allow simple changes to alarm times LET a = 3000 'Input1 300.0 seconds LET b = 3000 'Input2 300.0 seconds LET c = 3000 'Input3 300.0 seconds LET d = 3000 'Input4 300.0 seconds LET t1 = a LET t2 = b LET t3 = c LET t4 = d 'Begin main program, sequentially service each door. DO 'If door1 is closed, then set timer for 5 minutes. 'If door1 is open, then send an email and reset timer after timer expires 'Door 1 IF io.analogInput1 = 1 THEN LET t1 = a ELSE 'Else if door is open IF t1 = 0 THEN EMAIL io.analogInput1 LET t1 = a END IF END IF 'Door2 IF io.analogInput2 = 1 THEN LET t2 = b ELSE 'Else if door is open IF t2 = 0 THEN EMAIL io.analogInput2 LET b END IF END IF 'Door3 IF io.analogInput3 = 1 THEN LET t3 = c ELSE 'Else if door is open IF t3 = 0 THEN EMAIL io.analogInput3 LET t3 = c END IF END IF 'Door4 Xytronix Research & Design, Inc. Page 141 IF io.analogInput4 = 1 THEN LET t4 = d ELSE 'Else if door is open IF t4 = 0 THEN EMAIL io.analogInput4 LET t4 = d END IF END IF LOOP END X-4xx Series Users Manual Page 142 Xytronix Research & Design, Inc. X-4xx Series Users Manual 5.2.3 Send an email if the AC power fails Send an email if the AC power (via input1) has been off for 60 seconds. Send a follow-up email when the power is restored. Send the power restored email only if a 'power off' email was previously sent. Note: A simple AC to 12VDC wall transformer connected to the digital input can be used to detect the loss of AC power. 'Script will send an email after power has been off for a specific amount of time. 'Will also send an email when power is on only if a 'power off' email has been sent. LET a = 0 'Power on email sent if true LET b = 0 'Power off email sent if true DO IF io.input1 = 1 THEN 'If power is on LET t1 = 600 IF a = 0 THEN 'If no 'power on' email has been sent IF b = 1 THEN 'If 'power off' email has been sent EMAIL io.input1 LET a = 1 'Set power on email sent flag END IF END IF LET b = 0 END IF IF t1 = 0 THEN IF b = 0 THEN EMAIL io.input1 LET b = 1 END IF END IF 'Once power has been off a specific time 'Set power off email sent flag LOOP END Xytronix Research & Design, Inc. Page 143 X-4xx Series Users Manual 5.2.4 Monitor a generator. Send an email if it runs for more than 10 seconds. Send an email if a generator runs for more than 10 seconds, and every 30 minutes afterward. Send an email when the generator turns off if a 'generator on' email was sent. 'Input1 is used as the source for the generator status 'Input1 = 1 : Generator off 'Input1 = 0 : Generator on LET a = 0 LET t1 = 100 'Generator on email sent flag '10.0 seconds DO 'Generator off IF io.input1 = 1 THEN LET t1 = 100 IF a = 1 THEN EMAIL io.input1 LET a = 0 END IF END IF '10.0 seconds 'If generator on already email sent 'Email everything okay 'Set generator on flag back to false 'Generator on and timer expires IF t1 = 0 THEN 'If timer has expired EMAIL io.input1 'Email generator on LET t1 = 18000 '30 minutes until another email LET a = 1 'generator on email flag END IF LOOP END Page 144 Xytronix Research & Design, Inc. X-4xx Series Users Manual Section 6: Auxiliary Operations 6.1 XML Custom computer applications may be created to monitor and control the module. This method does not use a web browser. There are two XML pages that can be used to monitor and control the module: state.xml and customState.xml. All requests to the XML files must be in the form of HTTP GET requests see Section HTTP GET Requests (for custom applications) for details. See Section External Server and Remote Services for more information on network configurations when using XML. 6.1.1 state.xml The state.xml page served by an X-4xx only shows the I/O that have been assigned a `Local I/O Number'. The XML tag names on this page represent the I/O type and Local I/O number on the X-4xx. For example, if two relays have the Local I/O Numbers 1 and 5 assigned and no other I/O on the X-4xx have a Local I/O Number assigned, then the state.xml page would appear as follows: <datavalues> <relay1>0</relay1> <relay5>0</relay5> <vin>12.2</vin> <utcTime>1262394580</utcTime> <timezoneOffset>-25200</timezoneOffset> <serialNumber>00:0C:C8:00:00:00</serialNumber> </datavalues> Notice that the power supply of the X-4xx `vin' always appears in state.xml, as do the time, timezone, and serial of the X-4xx. Reading state.xml XML Monitor All Functions The state of the I/O configured on the X-4xx can be read by requesting state.xml. This can be demonstrated by entering the following URL into the address bar of a web browser (substituting the IP address as necessary): http://192.168.1.2/state.xml The following state.xml page is returned (this can vary, depending on the module and browser): <datavalues> <digitalInput1>0</digitalInput1> <onTime1>0.00</onTime1> <totalOnTime1>0.00</totalOnTime1> <count1>0.00</count1> <frequency1>0.00</frequency1> <relay1>1</relay1> <relay2>0</relay2> <relay3>0</relay3> <relay4>0</relay4> <analogInput1>4.96</analogInput1> Xytronix Research & Design, Inc. Page 145 <analogInput2>4.96</analogInput2> <analogInput3>4.97</analogInput3> <analogInput4>4.97</analogInput4> <oneWireSensor1>x.x</oneWireSensor1> <vin>12.2</vin> <register1>0</register1> <utcTime>1262394580</utcTime> <timezoneOffset>-25200</timezoneOffset> <serialNumber>00:0C:C8:00:00:00</serialNumber> </datavalues> X-4xx Series Users Manual The numbers enclosed by the tags, <tag>, indicate the current state or value monitored by the module. Values for each tag are described in the table below. Custom computer applications can open a TCP/IP connection with the module and send a GET request for the state.xml file to obtain the current state of the module. XML Tags* Monitor Values <digitalInputX> 0=off (voltage not applied to input X) 1=on (voltage applied to input X) <onTimeX> Time in seconds how long the input was on since last coming on <totalOnTimeX> Total time in seconds how long the input has been on <countX> The count value associated with input X <frequencyX> The frequency associated with input X <relayX> 0=off (coil off) 1=on (coil energized) <digitalIOX> 0=off (voltage not applied to input X) 1=on (voltage applied to input X) <analogInputX> Value of analog input X <vin> Scaled internal Vin measurement <frequencyInput> Value of the X-420 frequency input <registerX> Value of the register X <utcTime> Current UTC time expressed in seconds since January 1st, 1970 <oneWireSensorX> x.x = Indicates that the 1-Wire sensor could not be read 77.3 = Current sensor value 77.3 F = Current sensor value with units included using param showUnits=1 <timezoneOffset> Value to offset utcTime for local time <serialNumber> 00:00:00:00:00:00, serial number of X-418. Page 146 Xytronix Research & Design, Inc. X-4xx Series Users Manual Controlling with state.xml Commands can be sent to the module to control the I/O. The parameters used differ depending on if state.xml is used or customState.xml is used. State.xml uses the io type names and local io numbers when controlling the I/O. CustomState.xml uses the camelcase version of the user configurable name when controlling the I/O. XML Digital Output Control Commands are sent using the parameter composed of the io type and digital I/O number digitalIOX (X is replaced by 1 for digital IO 1, or 2 for digital IO 2, etc). A few examples of using digitalIOX are given here. Command Description state.xml?digitalIO1=0 Turn Digital I/O 1 OFF state.xml?digitalIO1=1 Turn Digital I/O 1 ON state.xml?digitalIO2=0 Turn Digital I/O 2 OFF state.xml?digitalIO2=1 Turn Digital I/O 2 ON XML Pulse Digital Output When the pulse command is sent, the output will turn ON for the Pulse Duration specified in the Digital I/O setup page. It is also possible to send a pulse time command that is different than the configured Pulse Duration. This is done by sending a pulseTime variable. The pulseTime variable does not change the Pulse Duration in the setup page and it is not stored or recorded. The pulseTime variable only changes the duration for the single pulse initiated by that command. In other words, you must issue the pulseTime command for each pulse command that differs from the preset value. For example, if the X420 is configured for a pulse duration of 1.5 seconds. To issue one 1.5 second pulse, three 5 second pulses, and another 1.5 second pulse to digital I/O 1, you would issue the following commands: Command Description state.xml?digitalIO1=2 Pulse Digital I/O 1 for the preset time (1.5 seconds). state.xml?pulseTime1=5&digitalIO1=2 Pulse Digital I/O 1 for 5 seconds. state.xml?pulseTime1=5&digitalIO1=2 Pulse Digital I/O 1 for 5 seconds. state.xml?pulseTime1=5&digitalIO1=2 Pulse Digital I/O 1 for 5 seconds. state.xml?digitalIO1=2 Pulse Digital I/O 1 for the preset time (1.5 seconds). NOTE: The pulseTime argument MUST come before the digitalIO1=2 command. XML Set On Time Counters The on time counter and total on time counter values can be set using the onTimex and totalOnTimex commands respectively: Command state.xml?onTime1=0 state.xml?onTime1=5 state.xml?totalOnTime1=0 state.xml?totalOnTime1=5 Description Reset the onTime1 counter to 0 Reset the onTime1 counter to 5 Reset the totalOnTime1 counter to 0 Reset the totalOnTime1 counter to 5 Xytronix Research & Design, Inc. Page 147 X-4xx Series Users Manual XML Set Counter The counter values can be set using the countx command: Command state.xml?count1=200 Description Set counter1 to 200. XML Set Register Values The register values can be set using the registerx command: Command state.xml?register1=10.5 Description Set register1 to 10.5. 6.1.2 customState.xml The customState.xml works very similarly to the state.xml page. The difference is in the customState.xml, the XML tag names are set to a name very similar to the name of the I/O it is associated with. For example, if you were to set the name of 'Register 1' to 'My Register 1' the register would show up in the customState.xml as 'myRegister1'. Using these names allows applications interfacing with the module to use more appropriate names when reading and writing I/O values. Controlling I/O with the customState.xml is the same as with the state.xml except you may now use the names shown in the XML tags. For example, if you wanted to set a register named 'My Register 1' to the value 10, you would use the following command: http://192.168.1.2/customState.xml?myRegister1=10 You will need to reference the customState.xml for the exact names to use for each of the configured I/O. Page 148 Xytronix Research & Design, Inc. X-4xx Series Users Manual 6.2 JSON This device can also read the current state of the devices I/O through JavaScript Object Notation (JSON). The JSON format may be preferred for some custom applications as some languages provide native methods for processing data in JSON form. There are two primary files that can be requested from this device in JSON form. The state.json and the customState.json. Each of these files provide the same information as their XML counterparts, but will be formatted with JSON. Additionally, the methods of controlling the I/O will be the same as with the XML pages. Note that all requests to the JSON files must be HTTP GET requests, see Section HTTP GET Requests (for custom applications) 6.3 HTTP GET Requests (for custom applications) The module has a built-in web server that responds to HTTP GET requests. These GET requests are sent from web browsers when a web page is requested. They are fairly similar to the actual addresses seen in the browser's address bar. The following section describes the HTTP protocol and how it can be used to control and monitor the module. All examples below show the state.xml, but will be the same for customState.xml and the JSON files. It is also assumed that a TCP/IP connection has already been established from the custom application to the device. The following are the messages that should be sent over the TCP/IP connection to control and monitor the device. 6.3.1 Using GET for Control and Monitoring No Password GET requests to the device for XML files. Example request state.xml: GET /state.xml HTTP/1.1\r\n\r\n Example set Register 1 to the value 25: GET /state.xml?register1=25 HTTP/1.1 \r\n\r\n Password Enabled If the User account is enabled on the module, and the state.xml page is requested through a browser, the user will be prompted for a password. If the request is sent from custom application, the HTTP request will need to contain the password encoded as Base64. The following is an html request header without the password: GET /state.xml?register1=25 HTTP/1.1 (Terminated with two \r\n.) The following example adds the password: GET /state.xml?register1=25 HTTP/1.1 (Terminated with one \r\n.) Authorization: Basic bm9uZTp3ZWJyZWxheQ== (Terminated with two \r\n.) bm9uZTp3ZWJyZWxheQ== is the Base64 encoded version of the user "name:password," none:webrelay. Xytronix Research & Design, Inc. Page 149 X-4xx Series Users Manual 6.4 SNMP Requests, Objects and Community Strings All configured I/O and some simple network parameters can be retrieved using Simple Network Management Protocol (SNMP). For most cases, using SNMP is as simple as locating the appropriate Management Information Bases (MIB) files and loading them into the SNMP manager software. The module will generate an MIB file, based on its I/O configuration, for use with the SNMP manager software. If the I/O are configured (added/deleted), a new MIB will need to be generated. SNMP is configured under the Advanced Network setup tab. See Section General Settings Tab > ADVANCED NETWORK SETTINGS for more information. The module supports the following Packet Data Units (PDU): GetRequest GetNextRequest GetBulkRequest SetRequest Trap Notification 6.4.1 Standard Objects The module supports several standard RFC1213 objects that usually come with SNMP management software. If not, an Internet search for RFC1213-MIB will turn up multiple links. RFC1213 Object Response system.sysDescr X-418 system.sysObjectID X418 system.sysUpTime Time in hundredths of seconds since the device was last powered. system.sysName X-418* *The sysName is customizable under the Control Page Setup tab. It's the Control Page Header. 6.4.2 Module Objects All configured I/O on the module can be monitored and controlled through SNMP. The MIB file can be generated for the module by going to General Settings Tab > ADVANCED NETWORK SETTINGS and pressing the button Generate and Download MIB File. This file should be regenerated whenever there are changes made to the I/O. 6.4.3 TRAPS Send SNMP traps when a relay changes state, when a particular sensor value is reached, or when the supply voltage is out of the desired range. Traps are configured as actions in Conditional and Scheduled tasks. As more I/O are added to the module, more I/O will appear in the MIB file. 6.4.4 Notifications Supports sending of SNMP Notifications when the SNMP version is 2c or 3. Notifications are similar to traps accept they require a response to be sent back from the SNMP manager. Retries will occur if the SNMP manager does not return a response. This makes notifications more reliable than traps. Notifications are configured as actions in Conditional and Scheduled tasks. Page 150 Xytronix Research & Design, Inc. X-4xx Series Users Manual 6.4.5 Community Strings The module allows customization of both the read and write community strings. The proper community string will be needed for all read and write requests. By default both read and write community strings are webrelay. Community strings are only used by SNMP versions 1 and 2c. SNMP version 3 uses a different security mechanism. 6.4.6 SNMP V3 User-Based Security Model The module supports the SNMP V3 User-Based Security Model (USM). This replaces the community strings "security" of SNMP V1 and 2C. The details of USM can be complicated, but the main thing is that both the module's security settings and the SNMP Manager's security settings need to match for it to work. There are two protocols used for USM. The first, authentication protocol, allows the SNMP manager to authenticate the module and vice versa. The second, privacy protocol, allows the SNMP communication to be encrypted. Each protocol has an "algorithm" and a password associated with it. There is also a security username that is shared by both protocols. Xytronix Research & Design, Inc. Page 151 X-4xx Series Users Manual 6.5 External Server and Remote Services Note: The following methods are supported by the module; however, Xytronix Research & Design, Inc. does not provide or support custom third-party applications, or external web servers. 6.5.1 Accessing the module with custom software or third-party applications Custom applications can send commands to the module for monitoring and control functions using HTTP requests for XML or JSON files. (See Section XML and JSON for more information) The application interface can be used to provide a custom user interface, access to multiple units in a single screen, and allow for automation, logging, and other application-specific features. 6.5.2 Using an External Web Server Rather than accessing the module directly from a computer, an external web server can be used. The term "external" web server is used here to mean a separate web server (such as Apache, IIS, or NGINX) that is not the web server built into the module. In this scenario, users access custom web pages that reside on the external web server and the external web server communicates with the module. An external web server can integrate multiple ControlByWeb devices into a single control page. In other words, the user may not be aware that he/she is using multiple ControlByWebTM devices, but rather the user sees an integrated control page for the entire system. In addition, the use of an external web server allows programmers to create custom user interfaces that take advantage of the additional resources typically available on larger web servers, including more memory and various web programming languages. There are two approaches that an external server can use to communicate with the module and other ControlByWebTM devices: Direct Server Control, and Remote Services. Direct Server Control The first approach is for the external server to create a TCP connection whenever it needs to access the ControlByWeb device. In this case, the external server opens the connection, sends commands and/or reads the device, and closes the connection. This method is ideal when the web server and all of the ControlByWeb devices are on the same network (without routers between them). In this case, the server can communicate with the devices directly and securely since data never has to leave the local network. When the server and the ControlByWeb devices are on different networks, routers must be configured to allow appropriate access. If a public network is used, such as the Internet, security precautions should be considered. Remote Services The second approach is for the ControlByWeb device to initiate a connection using Remote Services. The settings under the Advanced Network tab in the setup pages will enable the device to open a TCP connection with an external server. Once the connection is open, the external server can send commands and/or read the device. The external server can leave the connection open (so that it never closes) or close the connection. Remote Services is ideal for installations where the server and the device are installed on different networks. This is especially useful when each device is installed on a separate private network. For example, if the user doesn't control the network connections where the ControlByWeb device is installed, Remote Services would initiate a TCP connection over the Internet with the control computer. Page 152 Xytronix Research & Design, Inc. X-4xx Series Users Manual Since the ControlByWeb device initiates the connection, the control computer doesn't have to know the IP address of the device. This means that the device can be installed using DHCP. In addition, no special router configuration is required. This makes the network installation of the device very simple, and since no incoming ports need to be opened in the router, security is not compromised. See Section General Settings Tab > ADVANCED NETWORK SETTINGS for more information. The ControlByWeb device can be configured to establish a connection when triggered by an event, such as an I/O state changing. This is done by setting a conditional task with the action being Send Device State to Remote Service. With Remote Services enabled, a connection attempt will be made periodically according to the Connection Interval setting in the Advanced Network setup tab. The Connection String consists of static information about the device, a user-defined character string configured in the Advanced Network tab and ends with sending the state.xml. The connection string is also sent at the same interval once the connection is open. The external server is responsible for closing the connection when it is done. A three-character "ACK" response is expected in return to every connection string. If the "ACK" is not received within 10 seconds, the ControlByWeb device will close the connection. When an event occurs and a connection is open, the state.xml file is sent. Xytronix Research & Design, Inc. Page 153 X-4xx Series Users Manual 6.6 Log Files The module logs information to two different log files; log.txt and syslog.txt. Both log files are text files and are stored in nonvolatile memory; this data will not be lost due to power failure and the syslog.txt is not cleared when restoring factory defaults. The log files are stored in circular buffers which write from the beginning of the allocated memory space to the end and then repeat from the beginning (over-writing the original data). The nonvolatile memory is divided into 4K byte sectors. Each time data gets erased to make room for new data, a full sector (4K bytes) is erased at one time. Data Log File log.txt This log file is user-configurable under the Logging tab, and stores real-world data such as relay states, digital/analog input values, and events such as remote I/O state changes (see Section Logging Tab > GENERAL LOGGING SETTINGS for more information). It can be up to 3072K bytes long and is displayed using a comma-separated value formatting scheme. Inputs, Relays, Counters, Vin, and Sensors will only be displayed if they are selected in the Logging setup tab. The file is read by requesting the log.txt file from the module. For example, using the default IP address the following command would be used to request the log file: http://192.168.1.2/log.txt Example File Format: MM/DD/YYYY HH:MM:SS.mmm DDD, Digital I/O 1-2, Analog Inputs 1-4, Frequency Input, Vin, Sensors 1-16, Trigger: Source Date and Time Format: MM Month (1-12) DD Day (1-31) YYYY Year (1970 - 2106) HH Hour in 24 hour time (0 -23) MM Minutes (0-59) SS Seconds (0-59) mmm Milliseconds DDD DST When in daylight savings, STD When not in daylight savings time Sample File: Page 154 Xytronix Research & Design, Inc. X-4xx Series Users Manual The file can then be saved using the 'Save As...' option under the 'File' menu of the web browser. If the TCP port has been changed (not port 80), the port will be required to read the file. For example, using the default IP address, and port 8000, the log file would be read as follows: http://192.168.1.2:8000/log.txt The log.txt file may be erased with the following command: http://192.168.1.2/log.txt?erase=1 Note: If the User account is enabled in the Setup pages, the password will be required to access the log file. System Log File syslog.txt The syslog file records various system events, which can be used for diagnostics and troubleshooting purposes. File Format: MM/DD/YYYY HH:MM:SS, (category to which message applies): (message) Sample File: 01/02/2010 04:08:13 DEVICE: Power Up. 01/01/2010 00:41:05 DEVICE: Reset factory defaults. Listed below is a description of messages that a user may see: Category Message Description Power Up Device has been properly powered. DEVICE Initialize Device is ready. Reset Factory Defaults Device has been reset to factory defaults. Failed DNS Lookup Unable to lookup mail server due to an incorrect DNS setting. Bad Username Email was not sent due to an incorrect user name. EMAIL Bad Password Email was not sent due to an incorrect password. Authentication Required A user name and password are required by the mail server. No Response No response from SMTP server. CLOCK RTC Reset Real Time Clock has been reset. Xytronix Research & Design, Inc. Page 155 Category NTP SERVER Message Request Attempt Failed DNS Lookup Success Failed DNS Lookup REMOTE SERVER Connection Attempt Started Connection Closed DHCP Address Acquired Lease Renewal MAIN_MCU New Firmware Loaded X-4xx Series Users Manual Description Device attempting to connect to NTP Server. Unable to lookup NTP server name due to an incorrect DNS setting. Device successfully connected to NTP Server. Unable to lookup Remote Server due to an incorrect DNS setting. Connection port with Remote Server has been opened. Connection port with the Remote Server has been closed. IP address request successful, and IP address assigned. IP address assigned to device was renewed. New firmware has been loaded to the device. This file is read by requesting the syslog.txt file. For example, using the default IP address, the following command would be used: http://192.168.1.2/syslog.txt Note: The setup username and password are required to access this file. If the TCP port has been changed (not port 80), the port will be required to read the file. For example, using the default IP address, and port 8000, the log file would be read as follows: http://192.168.1.2:8000/syslog.txt To erase the file, use: http://192.168.1.2/syslog.txt?erase=1 Page 156 Xytronix Research & Design, Inc. X-4xx Series Users Manual 6.7 Modbus/TCP (slave) The module can be controlled and monitored using Modbus/TCP protocol. This provides a standard means of using the module with devices and software from other manufacturers. This section is not a tutorial on Modbus and it is assumed that the reader is already familiar with Modbus. Detailed Modbus information can be found at http://www.modbus.org. Note: Modbus communications are disabled whenever the User account is enabled. This is because Modbus/TCP does not provide a mechanism for password protection. Make sure the User account is disabled (default) and Modbus functionality is enabled on the Advanced Network. The module functions as a Modbus slave. Host devices, such as PLCs, open a connection with the module on port 502 (configurable under Advanced Network tab) and then send requests to read or set I/O states, or sensor values. When the module receives a command, it performs the desired function and returns a response. The module can have additional I/O added and removed that can cause changes to the Modbus address map. For an up-to-date map of I/O on the module to the addresses for Modbus, please select the View Modbus Address Table button from the Setup pages under the Advanced Network tab. The Modbus Address Table will list all the addresses to be used when accessing I/O on the module. It is broken down into three groups: register addresses, coil addresses, and discrete input addresses. Register addresses are used with the modbus register functions. Coil addresses are used with the modbus coil functions, and discrete input addresses are used with modbus discrete input functions. The following is an example of a Modbus Address Table. Note that while the module might not have all the I/O hardware present in the table, it can have remote I/O for those types. IO Name IO Pulse Timer Register Addr Counter On Timer Total On Timer Coil Addr Input Addr IO IO Relay 1 0 512 -- -- -- 0 -- Input 1 2 -- 1026 1538 2050 -- 1 Analog Input 1 4 -- -- -- -- -- -- Vin 6 -- -- -- -- -- -- The first column in the Modbus Address Table lists the name of the I/O. The seconds column lists the register address for the I/O. All I/O can be read and written as a register using this address and the modbus register functions regardless of the I/O type. Columns 3 through 6 are the register addresses used to access auxiliary functions of relays that have Pulse Timers, and digital inputs that have Counters, On Timers, and Total On Timers. The seventh column contains addresses used to read and write digital I/O and relays using the modbus coil functions. The last column contains addresses used to read digital I/O and inputs using the modbus discrete input functions. The following sections provide an overview and explanation of the different Modbus functions. Xytronix Research & Design, Inc. Page 157 X-4xx Series Users Manual 6.7.1 Modbus Function Code Summary The module supports the following function codes for reading and writing I/O. If the I/O type does not exist on the module, the function code is still supported for use with remote I/O of that type. Code Name Modbus Function Usage Read Coils 01 Read Relays and Digital I/O (Configured as outputs) Read Discrete Inputs 02 Read Digital Inputs and Digital I/O (Configured as inputs) Read Multiple Registers 03 Read Vin, Sensors, Registers, Counters, Analog Inputs (All I/O both Local and Remote) Write Single Coil 05 Write Relays and Digital I/O (Configured as outputs) Write Multiple Coils 15 Write Digital Inputs and Digital I/O (Configured as outputs) Write Multiple Registers 16 Write Digital I/O Pulse Counters, Registers, Counters (All writable I/O) Multiple commands may be sent without closing and re-opening the connection, but if no data is transferred for 50 seconds, the connection will time out and close. To keep the connection open, a read request can be sent periodically. The module has two TCP sockets available for Modbus/TCP. This allows two connections to be open at one time. Requests for more than two open connections will be rejected. When errors occur, an error code is returned. Most Modbus client software will interpret this code in a human readable form. The code is comprised of the original function code plus 0x80. For example, an error during the read coils function 0x01 would return 0x81. Each error has a qualifying exception number. The following are the possible exception codes and their meanings: 0x01 - Function code not supported (also when Modbus is disabled in the setup pages). 0x02 - Incorrect starting address/quantity of output combination. 6.7.2 Read Coils - Modbus Function Code 01 (0x01) Read the state of relays and digital I/O configured as outputs. Request Start Address: Refer to Modbus map in setup pages Coil Quantity: Refer to Modbus map in setup pages. Multiple Outputs may be read at the same time by specifying the correct starting address and quantity of coils to be read. Response The module will respond to the request with a data field of one or more bytes depending on the number of coils read. Each bit represents a coil status. A '1' indicates the Output is ON. A '0' indicates that the Output is OFF. Bit zero of the return value will be the state of the coil corresponding to the start address. For example, if a start address of 0x0001 is used, bit zero will be the status of the first relay or digital I/O. Page 158 Xytronix Research & Design, Inc. X-4xx Series Users Manual Bit 7 6 5 4 X XX X Coil State Byte 3 2 1 X X Digital I/O 2 Bit 0 Digital I/O 1 Errors The sum of the start address and coil count cannot exceed the maximum coil count or an error response will be returned. The following are possible error responses: Coil Read Error Function Code (1 byte): 0x81 Exception Codes (1 byte): 0x01 Function code not supported. 0x02 Incorrect combination of start address and quantity of Digital I/O Xytronix Research & Design, Inc. Page 159 X-4xx Series Users Manual 6.7.3 Read Discrete Inputs Modbus Function Code 02 (0x02) This function returns the state of digital inputs and digital I/O (when configured as inputs). Request Start Address: Refer to Modbus map in setup pages Input Quantity: Refer to Modbus map in setup pages. Multiple Inputs may be read at the same time by specifying the correct starting address and quantity of inputs to be read. Response The inputs states are indicated by bits in the status byte(s). A 1 indicates that the input is switched ON. A 0 indicates that the input switched OFF. Bit zero of the return value will be the state of the discrete input corresponding to the start address. For example, if a start address of 0x0001 is used, bit zero will be the status of input 2. Discrete Input State Byte Bit 7 6 5 4 3 2 1 XX x xxx Digital I/O 2 Bit 0 Digital I/O 1 Errors Input Read Error Function Code (1 Byte): 0x82 Exception Codes (1 byte): 0x01 Function not supported. 0x02 Incorrect combination of start address and input quantity. Page 160 Xytronix Research & Design, Inc. X-4xx Series Users Manual 6.7.4 Read Holding Registers Modbus Function Code 03 (0x03) The Read Holding Registers function is used mainly to read analog I/O such as the analog inputs, registers, counters, and vin. All I/O can be read using this function code. The holding register addresses can be found in the Modbus Address Table in the Advanced Network setup page under Modbus. Request 32-bit sensor values are read from 16-bit register pairs. Consequently, senors addresses and registers must be even numbers. Start Address: Refer to Modbus map in setup pages Input Quantity: Refer to Modbus map in setup pages. Multiple Registers may be read at the same time by specifying the correct starting address and quantity of registers to be read. The number of registers read must be divisible by 2. Response 32-bit floating-point values are returned, either as little-endian or big-endian numbers, depending on the configuration in the Advanced Network tab. With little-endian ordering, a temperature reading of sensor 1 would return 0x800042A2. The least significant word would be 8000 hex and the most significant word would be 42A2. This hexadecimal value converts to a temperature reading of 81.25 degrees. If a temperature or humidity sensor is not installed, a value of 0xFFFFFFFF (NaN) is returned. Other inputs will show measured values of the open circuits. Errors Sensor Read Error Function Code (1 byte): 0x83 Exception Codes (1 byte): 0x01 Function not supported. 0x02 Incorrect combination of start address and input quantity Xytronix Research & Design, Inc. Page 161 6.7.5 Write Single Coil Modbus Function Code 05 (0x05) Control digital outputs and relays one at a time. Request Start Address: Refer to Modbus map in setup pages Output Value: 0x00 (Off), 0xFF(On) Response The response mirrors the requested state, 0x00 or 0xFF. Errors Single Coil Write Error Function Code (1 Byte): 0x85 Exception codes (1 Byte): 0x01 Function not supported. 0x02 Address out of range. 0x03 Padding value. X-4xx Series Users Manual Page 162 Xytronix Research & Design, Inc. X-4xx Series Users Manual 6.7.6 Write Multiple Coils - Modbus Function Code 15 (0x0F) One or more bytes can be written to set the state of multiple digital outputs and relays, each bit representing one digital output or relay. Request Digital output and relay states are controlled by specifying the start address of the first digital output to be controlled, the number of the digital outputs to be affected, and the digital output state byte(s). A value of 0xFFFF would be used to turn ON up to 16 digital outputs and relays. A value of 0x0000 would be used to turn them OFF. A value of 0xF0 would turn off the first 4 digital outputs while turning on outputs 5 through 8. Start Address (2 bytes): Refer to Modbus map in setup pages Output Quantity (1 bytes): Refer to Modbus map in setup pages Byte Count (1 byte): Refer to Modbus map in setup pages (Output Quantity divided by 8) Digital I/O Value (Byte Count bytes): 0x0000 0xFFFF Digital I/O State Byte Bit 7 6 5 4 3 2 1 X X X X X X Digital I/O 2 Bit 0 Digital I/O 1 Response The quantity value is returned. Errors Multiple Coil Write Error Function Code (1 Byte): 0x8F Exception codes (1 Byte): 0x01 Function not supported 0x02 Incorrect combination of start address and Digital I/O quantity 0x03 Byte count out of range Xytronix Research & Design, Inc. Page 163 X-4xx Series Users Manual 6.7.7 Write Multiple Registers Modbus Function Code 16 (0x10) The Modbus Write Multiple Registers function can be used to set the state of writable analog I/O such as registers and analog outputs. Request Start Address: Refer to Modbus map in setup pages Input Quantity: Refer to Modbus map in setup pages. Multiple Registers may be written at the same time by specifying the correct starting address and quantity of registers to be read. The number of registers written must be divisible by 2. The values sent are in IEEE 754 floating point format. Also, the endianness configured in the modbus setup pages is taken into account. In little-endian the value 81.25 would be as follows: 0x800042A2. The least significant word would be 8000 hex and the most significant word would be 42A2. In big-endian, the least significant word would be 0x42A2 and the most significant word would be 0x8000. Response The request is acknowledged by responding with the register quantity that was written. Errors Pulse Function code Error (1 Byte): Exception codes (1 Byte): 0x90 0x01 Feature not supported. 0x02 Address quantity not an even number. Incorrect combination of start address and register count. Page 164 Xytronix Research & Design, Inc. X-4xx Series Users Manual 6.8 BASIC Scripts BASIC (Beginners All-purpose Symbolic Instruction Code) is a computer programming language that has been in use for many years. The module has an integrated BASIC interpreter for a simple BASIC script. This provides a great deal of flexibility by allowing users to customize basic functions of the unit. The interpreter only supports a small subset of the BASIC commands that are available for larger computers. Some non-standard commands have been added, and some commands may function differently on the module's BASIC interpreter than on other platforms. The following is a short tutorial on the supported BASIC functions. Example scripts are available at https://www.controlbyweb.com/support/tutorials/basic-scripttutorial.html. Contact customer support if further assistance is required. 6.8.1 Structure A BASIC script is written as a .txt file, which is then uploaded to the device using the Script setup tab. The maximum script size is 4-Kbytes. Each line within the script contains a single statement. Line numbers are not used. Statements are not case sensitive; however, variables are. IF THEN, FOR loops, and DO loops can only be nested up to 5 times per command. For those not familiar with nesting, the following is an example of nested FOR loops: FOR a = 0 to 100 FOR b = 0 to 100 NEXT b NEXT a Every program must end with an END statement. Subroutines would then follow after the END statement, if required. The last line of the script should be left blank. 6.8.2 Line Format Every line follows the same format. The basic format is: statement (variable) (=, <, >, <=, >=, <>) (expression) (THEN) The fields in parentheses are optional depending on the statement. One space must be used between all statements, numbers, variables, operators, expressions, etc. Multiple spaces are invalid. Comments may be inserted, but must begin with an apostrophe. All text on a line after the apostrophe is ignored. For example: LET a=1 LET a = 1 LET a = 1 'this will return an error because of insufficient spacing 'this is valid 'this will return an error because of too many spaces Only a single variable or literal is allowed on the left side of any operator. The following example is incorrect and will return an error. The error occurs because there is more than a single value to the left of the comparison operator (a + b is to the left of =). IF a + b = 3 THEN 'this will return an error To fix the above line, replace 'a + b'. One of the following options may be used: Let c = a + b IF c = 3 THEN Xytronix Research & Design, Inc. Page 165 X-4xx Series Users Manual 6.8.3 Supported Statements The following are the statements supported by the ControlByWebTM BASIC interpreter. LET The LET statement assigns a variable a value. The format is: LET (variable) = (expression) IF THEN, ELSE, END IF The IF THEN statement tests the truth of a condition. The ELSE statement defines a second function if the condition is found false. In other words, if the condition is true, then a function is performed. If it is not true, a second function may be performed. The second function may or may not be necessary depending on the application. The IF THEN (ELSE) statement must always be followed with an END IF statement. The format is: IF (variable) (=, <, >, <=, >=, <>) (expression) THEN (Function 1) ELSE (Function 2) END IF A special Variable NAN is available to check if I/O values are valid before using them. To check if a 1Wire temperature sensor value is valid before using it to send an email the following could be used: IF NAN <> io.oneWireSensor1 Then ` send email ELSE ` do something else END IF Note: In most BASIC interpreters, 'Function 1' (see above) may be placed after the THEN statement. This interpreter requires 'Function 1' to be put on the following line. FOR TO, NEXT The FOR TO statement loops a section of code a predefined number of times. The NEXT statement always follows the section of code to be looped. The format is: FOR (variable) = (expression) TO (expression) (code to be looped) NEXT (variable) DO WHILE, LOOP The DO WHILE statement loops a section of code while a condition is found true. The LOOP statement always follows the section of code to be looped. Note that if the condition is omitted, the code will be looped without end. The format is: DO WHILE (variable) (=, <, >, <=, >=, <>) (expression) (code to be looped) LOOP If the loop is to continue indefinitely, the format would be: DO (code to be looped) LOOP Page 166 Xytronix Research & Design, Inc. X-4xx Series Users Manual Example: let t0 = 100 do while t0 > 0 ' wait loop LOG The LOG statement causes the device to log data according to the settings specified under the Logging setup tab. Note: In order to log, logging must be enabled in the Logging setup tab. The format is: LOG EMAIL The EMAIL statement causes the device to send an email of the same format as that generated by other status change and alarm conditions. If an I/O variable is given as a parameter, then the subject line in the email will contain "Variable Name = Variable Value". If no I/O variable is given, then the subject of the email will be "Basic Script". EMAIL (io.digitalIO1, etc) Examples: EMAIL ...or... EMAIL io.analogInput1 ...or... EMAIL io.input1 ...or... EMAIL io.temp2 END The END statement ends the main body of code. CALL The CALL statement is found within the main body of code, but requires the interpreter to skip to a subroutine found at the end of the program. After the subroutine is finished, the interpreter returns to the line immediately following the CALL statement. The format is: CALL (name of subroutine) SUB, END SUB The SUB statement defines the beginning and name of a subroutine. The END SUB statement defines the end of the respective subroutine. Subroutine names can be up to 20 characters long and are case sensitive. The SUB and END SUB statements always must follow the END statement. The format is: END '*** Subroutines Go Here *** SUB (name of subroutine) (contents of subroutine) END SUB SUB (name of subroutine) (contents of subroutine) Xytronix Research & Design, Inc. Page 167 END SUB X-4xx Series Users Manual REM or ' The REM or apostrophe ( ' ) statement designates remarks made by the programmer. The interpreter will disregard any characters on the line following these statements. 6.8.4 User-Defined Variables Two types of variables are available for use in the ControlByWebTM BASIC interpreter, user-defined variables, and predefined variables. Up to 10 user variables may be initialized. These must be single character, lower case letters. a, b, c, d, e, f, g, h, i, j They are always global and stored internally as floating point numbers. Variables are defined using the LET statement. Examples: Let b = 5 Let d = b + 2 'variable b will be set to 5 'variable d will be set to 7 6.8.5 Predefined Variables The following are useful predefined variables for the ControlByWebTM BASIC interpreter. These are useful for accessing internal values and features states. Timer Variables Ten timers are available for use in BASIC scripts. t0, t1, t2, t3, t4, t5, t6, t7, t8, t9 Timers can be set to any positive integer (or 0) by using the LET statement. As soon as a value is assigned to a timer, it will begin to count down immediately by decrementing one count every 100 ms until it reaches zero. Examples: Let t3 = 1500 Let t1 = 0 'set timer 3 to 150 seconds 'disable time 1 These timers are different than the Timer I/O that can be configured under the I/O setup tab. They are only accessible to the basic script, and their resolution is 100 ms. The Timer I/O can also be accessed from the basic script as io.timer1, etc. These timers have 1 second resolution. Date and Time Variables The variables 'time' and 'date' are predefined, read only variables that store the current date and time. They can be used to schedule events and activities, such as sending emails, reading temperature, or setting Outputs. The date uses the mm/dd/yyyy format. Clock time is formatted as hh:mm:ss (24-hour clock). Example: If date = 01/01/2014 Then If time > 12:30:00 Then Let io.rmtRelay1 = 1 Let io.rmtRelay2 = 0 End If End If Note: Current date and time can only be set in the Date/Time tab. Page 168 Xytronix Research & Design, Inc. X-4xx Series Users Manual Event Variables Data and time variables can be used to execute script events. Up to ten date variables are available. ed0 'event date variable 0 ... 'ed1, ed2, ed3, ed4, ed5, ed6, ed7, ed8, ed9 'event date variable 9 The value assigned to event variables should be in the format mm/dd/yyyy. The event date variables store the number of days that have passed since January 1, 1970. Event time variables may be used in math expressions as well as comparison statements. Time variables have a similar naming convention. et0 'event time variable 0 ... 'et1, et2, et3, et4, et5, et6, et7, et8 et9 'event time variable 9 Event time variables are declared in the format hh:mm:ss in 24-hour time. The event time variables store the number of seconds from the beginning of the day. Event date and event time variables of the same number are linked. If the event time variable is incremented more than the number of seconds in a day (86400 seconds), the variable is reset to 0 and the event date variable is incremented by one. For example, if et3 rolls over to zero, ed3 will be incremented. The following script example demonstrates defining the event variables and comparing it to the current date and time. Assume current time is April 10, 2010 at 1:30 AM and the event should occur in one hour and every hour thereafter. Example: Let a = 1 Let ed1 = 04/10/2010 Let et1 = 02:30:00 Do While a <> 0 If ed1 >= date Then If et1 >= time Then Let et1 = et1 + 3600 End If End If Loop End 'sets the event date to April 10, '2010. 'sets the event time to 2:30 'Tests event date versus current date. 'Tests event time versus current time. 'Increments the event time by one hour '(in seconds). 'Event to occur would go on this line 6.8.6 I/O Variables The BASIC interpreter has full access to all configured I/O on the module. The I/O are treated as variables and can be read and written to the same as other variables. Depending on the ControlByWeb device, the number fixed I/O resources will vary. After I/O is added and defined they can be controlled and monitored within BASIC scripts. BASIC scripts must reference I/O resources such as digital inputs and relays in the form of io.name where "name" is the resource name defined when the resource was added in the I/O Setup tab. If the resource name has embedded spaces, they must be removed in the io.name statement. For example, if a remote relay is named "Warehouse Fan", the fan can be turned on with the BASIC statement "LET Xytronix Research & Design, Inc. Page 169 X-4xx Series Users Manual io.warehouseFan = 1". If a resource name is changed during development and testing, the resource name in the BASIC script must be renamed to match. The button on the BASIC setup page displays a list of all of the I/O resources currently available together with the equivalent token to be used in BASIC scripts to reference the respective I/O resource. Relay Variables Relay variables are represent the state of the relays and can be used to change the state of the relays. Remote relays and local relays are read and controlled the same. Below is an example on how to access the relays provided they are at the default names. io.relay1 io.device1Relay1 'relay 1 'remote relay 1 Note: Commands can be sent to remote relays, but the states of those relays cannot be reliably read immediately. Consequently, remote relays should not be used in safety or security-critical applications. Relay outputs can be turned ON, turned OFF, pulsed, toggled, or read in BASIC scripts. The LET statement is used to set the output state. The state options available are: 0 turn relay off 1 turn relay on 2 pulse relay 5 toggle relay The pulse time is specified in the Relay setup tab. Examples: Let io.relay1 = 1 Let io.relay1 = 0 Let io.relay1 = 2 Let io.relay1 = 5 Let a = io.relay2 'turn on relay 1 'turn off relay 1 'pulse relay 1 'toggle relay 1 'read the state of relay 2, state will be 0 or 1 Digital Input Variables The digital input states can be read in BASIC scripts. Below is an example assuming the name for input 1 is left at the default. io.digitalInput1 'digital input 1 Example: Let a = io.digitalInput1 'sets 'a' equal to value of input 1 Counter Variables The input counter can be read in BASIC scripts. Below is an example assuming the name for input 1 is left at the default. io.digitalInput1.count 'input 1 counter Example: If io.digitalInput1.count > 5000 Then 'If input counter 1 is greater than 5000 then Let io.relay1 = 1 'turn output 2 on End If Page 170 Xytronix Research & Design, Inc. X-4xx Series Users Manual Analog Input Variables The analog input scaled values can be read in BASIC scripts. Below is an example assuming the name for analog input 1 is left at the default. io.analogInput1 'analog input 1 Example: If io.analogInput1 > 4 Then Let io.rmtRelay1 = 2 Else Let io.rmtRelay1 = 0 End If 'If Analog Input 1 is greater than 4 then 'Pulse remote relay 1, otherwise 'remote relay 1 will be off Temperature/Humidity Sensor Variables Each temperature sensor or humidity sensor can be read in BASIC scripts. Below is an example assuming the name for the 1-Wire sensor is left at the default. io.oneWire1 'temp or humidity sensor 1 Example: If io.oneWire1 >= 80 Then Let io.relay2 = 1 End If 'If temperature sensor reads greater than 80 ' degrees, then 'Turn on relay 2 Registers Registers are similar to general purpose variables and can be used in the same manner. The difference between general purpose variables and registers is that registers can be accessed by the user through a web browser and modified while the script is running. Scripts can use registers as a method of retrieving input from the user or through any of the scheduled or conditional tasks. Below is an example of how to access a register assuming it is at the default name. io.register1 The following example demonstrates the BASIC script reacting to user input by creating a script that will turn ON a remote relay if Register 1 equals 1 and turn OFF if a remote relay if Register 1 equals 0. Example: Do If io.register1 = 1 Then Let io.device1Relay1 = 1 Else Let io.device1Relay1 = 0 End If Loop End Registers can also be used to show numeric values, such as a count-down timer. The following code will show a count down from 10 seconds and automatically restart. The refresh rate must be configured in the Control Page Setup in order to see each of the count-down values. Example: let t0 = 10 'Initialize variables and start timer let io.register1 = 10 'Main Loop Do Xytronix Research & Design, Inc. Page 171 X-4xx Series Users Manual if t0 = 0 'when timer reaches 0 decrement counter let io.register1 = io.register1 - 1 let t0 = 10 end if loop end if io.register1 < 0 'restart when counter reaches zero let io.register1 = 10 end if Page 172 Xytronix Research & Design, Inc. Appendix A: Restoring Factory Default Settings In the event that the IP address or passwords are forgotten, the module may be restored to its original factory default settings. 1. Remove the DC power from the unit. 2. Use a thin, non-conductive object (such as a toothpick) to press and hold the small button located on the bottom of the unit. When the object is inserted, a tactile feedback can be felt as the button is depressed. CAUTION: Do not use metal objects for this function 3. While depressing the button, apply power. While holding the button, you should see both the Link and Activity lights on the Ethernet port flash. 4. Continue holding the button for five seconds before releasing the button. All settings will be back to the original factory defaults. log.txt and syslog.txt are retained. 5. Refer to Establishing Communications for Setup to begin reconfiguration of the module. Appendix B: Installing New Firmware From time to time, updates are made to the module's firmware. As an industrial device and unlike many consumer products, firmware updates are recommended only on an as-needed basis. The firmware can be updated in the field. The procedure for updating the firmware is outlined below. Please note that it is important that this procedure is followed precisely. Requirements The firmware update software requires Windows 7/8/10. Setup 1. Updating firmware will not automatically save settings, scripts, etc. Before proceeding with the firmware update, please back up all settings files and Basic scripts. 2. Contact technical support if a firmware update is needed and a download link will be provided. Only a module's image can be installed on the module, so make sure the correct image is being downloaded. 3. bootloader.exe will connect to the module using default IP address 192.168.1.2, not the address currently assigned to the module. After the update, all settings will be lost and the device will return to its default IP address of 192.168.1.2. Configure the PC to the same subnet as the IP address 192.168.1.2, such as 192.168.1.10. For instructions on doing this see Section Establishing Communications for Setup. Note: The IP address of the module will automatically be set to the default 192.168.1.2 during the update process. Since the module supports Auto Negotiation, a crossover cable is not necessary. 4. Open the bootloader.exe utility on the computer by double clicking on the downloaded file. 5. Within the ControlByWebTM Programmer utility programmer, select File, then Open. Specify the firmware image downloaded from the ControlByWebTM web site. Device Upgrade Procedure Carefully follow the following steps to put the module into bootloader mode and perform the upgrade: 1. Remove DC power from the module. 2. Using a small, non-conductive tool, press and hold the reset button. 3. While holding the reset button, apply power to the module. The LINK and ACT lights will flash. Continue to hold the reset button for the next step. 4. While holding the reset button, press the Upload Firmware button at the bottom of the ControlByWebTM Programmer window. After the programming process begins, the reset button can be released. 5. Programming will take approximately 60 seconds, the LINK LED will stop flashing and remain lit. The module will be set to factory defaults with an IP address of 192.168.1.2. 6. Refer to Section Establishing Communications for Setup to reconfigure the device. Verify the new version of firmware has been installed by viewing the default setup page with a web browser (http://192.168.1.2/setup.html). Appendix C: Accessing the Device Over the Internet The module can be monitored and/or controlled from a remote location over the Internet. Once the module can be accessed on the local network, almost all of the settings required to provide remote access are in the router and not in the module. This guide is not meant to be a tutorial in router setup, but rather to provide a basic overview of remote access. For specific details, the user should refer to the instruction manual for the router on the local network. Users not familiar with basic IP networking should study one or more basic IP networking tutorials before proceeding (many tutorials are available on the Internet). IP Addresses Every device on the Internet is identified by a unique address called an IP (Internet Protocol) address. IP addresses are somewhat similar to mailing addresses in that they identify the precise logical location of the device on the Internet. The IP address identifies the global region down to the network and then the specific device on that network. IP addresses are globally maintained and assigned by an entity called the Internet Assigned Numbers Authority (IANA). IP addresses consist of four sets of numbers that range from 0 to 255 and are separated by a decimal. For example, 192.168.200.167 is an IP address. Every device that is "directly" connected to the Internet uses a "public" IP address. The module can be assigned a public IP address for direct connection to the Internet. Typically, a public IP address to would only be assigned to the module when it is the only device on the local network. The IP address would be obtained from an Internet Service Provider (ISP). Due to the limited number of public IP addresses, private networks can be set up with "private" IP addresses. These addresses are used within a local network and have no global designation, they are not routed on the Internet. The following address blocks are designated for private networks (where x represents decimal numbers from 0 to 255): 192.168.x.x, 10.x.x.x, and 172.16.x.x. A Simple Local Area Network A small Local Area Network (LAN), can be made up of two or more computers or other devices connected to an Ethernet switch. Each device on the network is assigned a unique private IP address. For example, consider a simple network that consists of a computer, an X-410, and a WebRelayTM. In this example, the computer is assigned an IP address of 192.168.1.10, the X-410 has the IP address of 192.168.1.25 and a WebRelayTM has and IP address of 192.168.1.26. A person using the computer can access the X-410 by entering its IP address in the URL line in the browser, http://192.168.1.25. Similarly, the WebRelayTM can be accessed by entering its unique private IP address in the URL line in the browser, http://192.168.1.26. X-4xx Series Users Manual A Simple LAN connected to the Internet The LAN in the example above can be connected to the Internet by adding a router and an Internet connection. The router has two network connections. It has an Ethernet network connection to the LAN and another connection to the Internet. Often the Internet connection is called a Wide Area Network (WAN) connection. Each network connection on the router has an IP address. In our example, the IP address on the LAN side of the router has an address of 192.168.1.1. The IP address on the WAN side of the router has an IP address that has been assigned by the Internet Service Provider, such as 203.0.113.254. In the example, when a user on the computer needs to access a server on the Internet, the computer sends the request to the router at 192.168.1.1. The router sends the request to the ISP server on the Internet. The ISP server does not send the response directly to the computer on the LAN, but to the router at the IP address of 203.0.113.254. The router then forwards the response to the computer. This way, all devices on the LAN share a single public IP address. This is called Network Address Translation (NAT). Page 176 Xytronix Research & Design, Inc. X-4xx Series Users Manual Port Forwarding The router can be configured to allow outside access to the ControlByWeb devices. All requests from the Internet to any device on the local network must use the public IP address (203.0.113.254). With only a single IP address, TCP ports are used to identify the intended device for the incoming message. Using the mailing address analogy, the port is similar to a post office box. The IP address specifies the location, and the port specifies the specific recipient. Port numbers can be set to any number between 1 and 65535. However, many port numbers are reserved for specific applications and should be avoided. As a general rule, numbers above 8000 are safe to use. All of the ControlByWebTM devices come from the factory with the HTTP port set to 80, which is the standard port for HTTP. In the example above, the X-410 HTTP port will be changed to port 8000 and WebRelayTM port will be changed to 8001. Once the ports are changed in the two ControlByWebTM devices, the router must be set up for port forwarding. Port forwarding associates the IP address of each local device with an assigned port. In the above example, the address 192.168.1.25 for the X-410 would be associated with port 8000. The address 192.168.1.26 for WebRelayTM would be associated with port 8001. The X-410 would be accessed from the Internet by entering the public IP address of the router, plus the port number assigned to the X-410 in the URL window of the browser, http://203.0.113.254:8000. All Internet requests to the router for port 8000 would be forwarded to the X-410. Similarly, all request for port 8001 would be forwarded to WebRelay. Note: When an HTTP request comes in to the router without the specific port specified (http://203.0.113.254), the router will handle this as a port 80 request (default HTTP port). In other words, http:// 203.0.113.254 is exactly the same as http://203.0.113.254:80. Router configuration can vary widely. Some routers have the capability of translating the addresses and the ports, which would require no port configuration change on the ControlByWeb device. For example, the router would be configured so that messages sent to http://203.0.113.254:8000 would be forwarded to http://203.0.113.254:80, which is the default HTTP port. An example screen shot of a router configuration is given below. This setup allows the two ControlByWebTM devices in the above example to be accessed remotely from the Internet. Example of Port Range Forwarding Xytronix Research & Design, Inc. Page 177 X-4xx Series Users Manual Note: This screen shot is simply an example of a typical router setup page. Routers will vary. Accessing Setup Pages After changing ports, the setup pages are accessed on a local network as described below: http://(ControlByWeb Device's Local IP Address):(Port Number)/setup.html For example, to access the setup pages when the port is set to 8000, the following command would be used: http://192.168.1.25:8000/setup.html To access the ControlByWebTM devices from the Internet, enter the public IP address of the router plus the port number of the desired device in the following format: http://(Public IP Address of Router):(Port Number of Device)/setup.html Using the example above, the following line would be used to access the setup page of the X-410: http://203.0.113.254:8000/setup.html Page 178 Xytronix Research & Design, Inc. X-4xx Series Users Manual Appendix D: Specifications Power Requirements Model X-400-I X-400C-I X-401-I X-401-E X-404-I X-404C-I X-405-I X-405-E X-406-I X-406-E X-408-I X-408-E X-410-I X-410-E X-418-I X-418-E X-420-I X-420-E X-430-I X-430-E Input Voltage 9-28VDC 9-28VDC 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. 9-28VDC 9-28VDC 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. 9-28VDC Power Over Ethernet (*) and/or 9-28VDC. * 48V injected into Ethernet Line as per 802.3af specification, POE Class 1 (0.44Watt to 3.84Watt range) Xytronix Research & Design, Inc. Page 179 X-4xx Series Users Manual X-400-I Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current (no expansion modules) 134 mA 101 mA 55 mA Max Current (X-400 + 1.7A for expansion modules) 1.834 A 1.801 A 1.755 A X-400C-I Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current (no expansion modules) 190 mA 130 mA 80 mA Max Current (no expansion modules) 240 mA 185 mA 95 mA Max Current (X-400 + 1.7A for expansion modules) 1.94 A 1.85 A 1.80 A X-401 Input Current: Values at 25°C Power Supply Typical No Relays Typical 2 Relays and or Inputs On Inputs On 9 VDC 107 mA 233 mA 12 VDC 83 mA 180 mA 24 VDC 46 mA 108 mA X-404-I Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current (no modbus sensors) 134 mA 101 mA 55 mA Max Current (X-404 + 1.7A for modbus sensors) 1.834 A 1.801 A 1.755 A X-404C-I Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current (no expansion modules) 190 mA 130 mA 80 mA Max Current (no expansion modules) 240 mA 185 mA 95 mA Max Current (X-400 + 1.7A for expansion modules) 1.94 A 1.85 A 1.80 A Page 180 Xytronix Research & Design, Inc. X-4xx Series Users Manual X-405 Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current (1 sensor) 113 mA 90 mA 50 mA X-406 Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current (no sensors) 110 mA 89 mA 50 mA Typical Current (4 sensors) 115 mA 90 mA 50 mA X-408 Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current (8 inputs off) 115 mA 87 mA 49 mA Typical Current (8 inputs on) 175 mA 133 mA 74 mA X-410 Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical No Relays or Inputs On 110 mA 85 mA 50 mA Typical 4 Relays and Inputs On 240 mA 180 mA 100 mA X-418 Input Current: Values at 25°C Power Supply Typical Current 9 VDC 12 VDC 24 VDC 134 mA 103 mA 58 mA Typical Current (4x 4-20mA mode) 152 mA 115 mA 65 mA Xytronix Research & Design, Inc. Page 181 X-4xx Series Users Manual X-420 Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Typical Current 175 mA 135 mA 75 mA X-430 Input Current: Values at 25°C Power Supply 9 VDC 12 VDC 24 VDC Current 134 mA 101 mA 55 mA I/O Connectors 5-position, removable terminal strip, 3.81 mm spacing (replacement part number, Phoenix Contact 1827004) 14-position, removable terminal strip, 3.81 mm spacing (replacement part number, Phoenix Contact 1803691) Expansion Connector (X-400) Provides power and communication for expansion modules. Connector: Communications: Ribbon cable,10-conductor, polarized, 2x5-position, 0.100" pitch RS-485 RS-485 Connector (X-404) Provided power and communication with modbus sensors. Connector: Communications: 5-position, removable terminal strip, 3.81 mm spacing RS-485 Cellular Antenna Connector (X-400C and X-404C only): Female, type SMA 1-Wire Sensor Input +5Vout Output: 5.0V, 100mA max Maximum Number of Sensors: 16 X-406: 4-channels x16/channel = 64 Maximum Cable Length: 600 feet (180m) maximum combined cable length per channel Compatible with Maxim (Dallas) Semiconductor DS18B20 digital 1-Wire thermometer. Compatible with X-DTHS-P (temperature/humidity), X-TC1W-K (thermocouple) and other supported digital 1-Wire sensors. Sensors are interchangeable, no calibration needed. Page 182 Xytronix Research & Design, Inc. X-4xx Series Users Manual Relay Contacts (X-401) Number of relays: 2 Contact Form: SPDT (form C) Contact Material: AgSnO2 Contact Resistance: < 50 milliohms initial Internal Relay Mechanical Endurance: 10,000,000 operations min. (under no load) Internal Relay Electrical Endurance: 100,000 operations average (under rated load) Max Voltage: 28VAC, 24VDC Max Current: 3A Control Options: On/Off or Pulsed Pulse Timer Duration: 100ms to 86400 Seconds (1-day) Relay Contacts (X-410) Number of relays: Contact Form: Contact Material: Contact Resistance: Internal Relay Mechanical Endurance: Internal Relay Electrical Endurance: 4 SPST (form A) AgNi milli-ohm max 5,000,000 operations min. (under no load) 100,000 operations average (under rated load) Max Voltage: 28VAC, 24VDC Max Current: 1A Control Options: On/Off or Pulsed Pulse Timer Duration: 100ms to 86400 Seconds (1-day) Digital Inputs (X-401, X-408, X-410) Number of Inputs: Minimum Hold Time (high or low): Input Current (Iin): Reverse Voltage (Vr): Vin: Vin Hi: Vin Lo: Input Counter (24 bit): X-401: 2; X-408: 8; X-410: 4 2.5mS 950uA @ 4V, 8.5mA @ 26V 6V max 26V (max) 4V (min) 1.5V (max) 16,777,215 (max count) Xytronix Research & Design, Inc. Page 183 Max Counter Frequency Input: 200Hz X-4xx Series Users Manual Analog Inputs (X-418, X-420) Number of channels: Resolution: Type: Input Range (programmable): Max Input Voltage Range (Vin): Input Impedance (Zin): Channel Off Leakage: Input Common Mode Rejection: Total Unadjusted Error: Voltage Reference Drift: Internal 0-20mA input shunt: Logging Rate: Sample Rate: 8ea (X-418), 4ea (X-420) 16-bit, SAR Channels 1-4: Single ended, differential or 4-20mA (0-20mA) Channels 5-8: Single ended or differential Channels 1-8: Pseudo digital input ±1.28V, ±2.56V, ±5.12V, ±10.24V, ±20.48V (differential) -12.5V < Vin < +12.5V >500Meg Ohm ±0.6nA (typ) >100dB -9LSB (min), +9LSB (max) ±5 ppm/°C 200.0-ohm, ±0.1%, 25ppm (uses ±5.12V range) 25 Hz 50 Hz Pseudo Digital Inputs (X-418, X-420) Vih (high-level input voltage): Vil (low-level input voltage): Sample Rate: 3.5V 1.5V 50 Hz Digital Input/Output (X-420) Number of Digital I/O: Pull-up/Pull-down Resistor: Vih (high-level input voltage): Vil (low-level input voltage): Vout: Debounce: Pulse Counters: Max Counter Frequency Input: 2ea, programmable as an input or output 47K 3.5V min 1.5V max 5V CMOS logic thru a 49.9-ohm resistor Configurable, 0 to 250mS 2ea, 24-bit 200Hz Frequency Input (X-420) Type: AC coupled, referenced to Gnd, sine or square wave Page 184 Xytronix Research & Design, Inc. X-4xx Series Users Manual Input Voltage: Hysteresis: Frequency: Vin @ 1 Hz Vin @ 10 Hz Vin @ 100 Hz Vin @ 1 kHz Vin @ 10 kHz Vin @ 20 kHz (works with millivolt magnetic wind speed sensors) 20Vpp max 25mV 0-20KHZ 50mVpp min 50mVpp min 60mVpp min 80mVpp min 700mVpp min 1.7Vpp min Network 10 Base-T or 100 Base-T Ethernet IPv4 (10 Mbit/s or 100 Mbit/s) Static IP address assignment or DHCP HTTP port selectable HTTPS port selectable Standard 8-pin RJ-45 modular socket, with auto-negotiation Supported Protocols: HTTP, HTTPS, SSL, XML, Modbus TCP/IP, SNMP V1,2C,V3, SMTP Xytronix Research & Design, Inc. Page 185 LED Indicators Power Network Linked Network Activity Relay Digital Input Green Green Yellow Yellow Yellow X-4xx Series Users Manual Email Alerts Email Addresses: Encrypted Email Alerts: Status Alerts: Other Alerts: Configurable, up to 8 addresses STARTTLS and TLSL/SSL Analog and digital inputs, etc. Alert logic is fully customizable Real-Time Clock Manual or NTP (Network Time Protocol) setup NTP Sync configurable for once, daily, weekly, or on power-up Automatic daylight savings adjustment Battery (capacitor) backup: Real-time clock, 1 register, 2 counters, 64 relay states (local and expansion modules only) Backup Duration: 2 weeks minimum Nonvolatile Memory Flash Memory All user settings are stored in nonvolatile memory. Settings will not be lost when power is disconnected. Logging Stored in Nonvolatile Flash Circular Buffer 3072-Kbyte (up to 50688 log entries depending on configuration) Unlimited data storage possible through sending the log through email or FTP services. Password Settings Password protection for Administrators (setup pages) Optional password protection for Managers Optional password protection for Users (control page) Base 64 Password Encoding Password Length: 18 character, case sensitive Scripts Implement special or custom features with a BASIC script Max size : 4-Kbytes Page 186 Xytronix Research & Design, Inc. X-4xx Series Users Manual Environmental Operating Temperature: -40ºC to 65.5ºC (-40ºF to 150ºF) Storage Temperature: -40ºC to 85ºC (-40ºF to 185ºF) Altitude: up to 2000m Humidity: 5-95% non-condensing Mechanical Size: 1.41 x 3.88 x 3.1 in. (35.7 x 98.5 x 78 mm), not including connector Weight: 5 oz (142 g) Electromagnetic Compliance IEC CISPR 22, CISPR 24 EU EN55024, EN55022 X-400-I: FCC 47CFR15 (Class B) Cellular Modules: Contains FCC ID: N7NHL7648 Contains IC: 2417C-HL7648 Bluetooth Modules: Contains FCC ID: A8TBM71S2 Contains IC: 12246A-BM71S2 Product Safety Compliance UL 61010-1 (Electrical Equipment for Measurement, Control, and Laboratory Use) Xytronix Research & Design, Inc. Page 187 X-4xx Series Users Manual Appendix E: Trademark and Copyright Information This document is Copyright ©2005-2020 by Xytronix Research & Design, Inc. All rights reserved. X-400TM, X-401TM, X-404TM, X-405TM, X-406TM, X-408TM, X-410TM, X-418TM, X-420TM, X-430TM, WebRelayTM, ControlByWebTM, and Xytronix Research & DesignTM are trademarks of Xytronix Research & DesignTM, Inc. 2005-2020. All other trademarks are the property of their respective owners. All parts of this product and design including but not limited to firmware, hardware design, schematics, PCB layout, concept, graphics, users manual, etc., are property of Xytronix Research & Design, Inc. ©2005-2020. The X-4xx modules may not be copied or reverse-engineered. No part of this manual may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying or scanning, for any purpose other than the personal use by the purchaser of this product. Xytronix Research & Design, Inc., assumes no responsibility for any errors that may appear in this document. Whereas reasonable effort has been made to make the information in this document as useful and accurate as possible, Xytronix Research & Design, Inc. assumes no responsibility for the application, usefulness, or completeness of the information contained herein. Under no circumstance will Xytronix Research & Design, Inc. be responsible or liable for any damages or losses including direct, indirect, special, incidental, or consequential damages or losses arising from either the use of any information contained within this manual or the use of any products or services referenced in this manual. Xytronix Research & Design, Inc. reserves the right to change any product's features, specifications, documentation, warranties, fee schedules, and conditions at any time and without notice. Page 188 Xytronix Research & Design, Inc. X-4xx Series Users Manual Appendix F: Warranty This Xytronix Research & Design, Inc. product is warrantied against defects in material and workmanship for a period of five years from the date of shipment. During the warranty period, Xytronix Research & Design, Inc. will, at its option, either repair or replace products that prove to be defective. This warranty is extended to the original purchaser of the equipment only. For warranty service or repair, customer must contact Xytronix Research & Design, Inc. technical support (support@ControlByWeb.com) and obtain a Return Authorization number (RA#). Before issuing an RA#, a support technician will work with customer to try to resolve the issue without returning the product. If technician determines that product must be returned for service an RA# will be issued. Next, the product must be properly packaged and returned to Xytronix Research & Design, Inc. with the RA# clearly marked on the package. The purchaser shall prepay all charges for shipping to Xytronix Research & Design, Inc. For warranty repairs of products less than one year old, Xytronix Research & Design, Inc. will pay the shipping charges to return the product to the purchaser as long as the product is shipped within the continental United States. If the product is shipped outside of the continental United States or the product was shipped more than one year earlier, the purchaser shall pay all shipping charges both ways. Limitation The foregoing warranty shall not apply to defects or damage resulting from improper use or misuse, unauthorized repair, tampering, modification, improper connection, or operation outside the electrical/environmental specifications for the product. Further, the warranty does not cover damage from Acts of God, such as lightning, fire, flood, hurricanes and tornadoes. This warranty does not cover damage to property, equipment, direct, indirect, consequential, or incidental damage (including damage for loss of business profit, business interruption, loss of data, and the like) arising out of the use or misuse of this product. UNDER NO CIRCUMSTANCES WILL THE LIABILITY OF XYTRONIX RESEARCH & DESIGN, INC. TO THE PURCHASER OR ANY OTHER PARTY EXCEED THE ORIGINAL PURCHASE PRICE OF THE PRODUCT, REGARDLESS OF THE FORM OF THE CLAIM. No other warranty is expressed or implied. Xytronix Research & Design, Inc. specifically disclaims the implied warranties or merchantability and fitness for a particular purpose. Some jurisdictions may not allow the exclusion of limitation of liability for consequential or incidental damage. Xytronix Research & Design, Inc. Page 189 X-4xx Series Users Manual Appendix G: FCC Statement This device complies with Part 15 of the FCC Rules. Operation is subject to the following two conditions: 1. This device may not cause harmful interference. 2. This device must accept any interference received, including interference that may cause undesired operation. Warning This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not in-stalled and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures: Reorient or relocate the receiving antenna. Increase the separation between the equipment and receiver. Connect the equipment into a relay on a circuit different from where the receiver is connected. Consult the dealer or an experienced radio/TV technician for help. Notice Changes or modification not expressly approved by the party responsible for compliance could void the user's authority to operate the equipment. For Cellular Enabled Devices RF Exposure Information This equipment complies with the FCC RF radiation exposure limits set forth for an uncontrolled environment. The antennas used with this transmitter must be installed to provide a separation distance of at least 20cm from all persons and must not be located or operating in conjunction with any other antenna or transmitter. Canadian License-Exempt Radio Apparatus (RSS-GEN) This device complies with Industry Canada license-exempt RSS standard(s). Operation is subject to the following two conditions: (1) this device may not cause interference, and (2) this device must accept any interference, including interference that may cause undesired operation of the device. Le présent appareil est conforme aux CNR d'Industrie Canada applicables aux appareils radio exempts de licence. L'exploitation est autorisée aux deux conditions suivantes : (1) l'appareil ne doit pas produire de brouillage, et (2) l'utilisateur de l'appareil doit accepter tout brouillage radioélectrique subi, même si le brouillage est susceptible d'en compromettre le fonctionnement. Under Industry Canada regulations, this radio transmitter may only operate using an antenna of a type and maximum (or lesser) gain approved for the transmitter by Industry Canada. To reduce potential radio interference to other users, the antenna type and its gain should be so chosen that the equivalent isotropically radiated power (eirp) is not more than that necessary for successful communication. Page 190 Xytronix Research & Design, Inc. X-4xx Series Users Manual Appendix H: Product Licensing The webpages on the X-4xx devices use javascript libraries that contain permissive free software licenses such as MIT and BSD 3-Clause. The licenses and copyrights are included directly in the source for setup.html on the module. The firmware included in this product also contains copyrighted software that is licensed under various permissive free software licenses. mbedtls - Copyright (C) 2006-2015, ARM Limited, All Rights Reserved License: Apache-2.0 http://www.apache.org/licenses/LICENSE-2.0 lwIP - 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. Re-distributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Re-distributions 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. Xytronix Research & Design, Inc. Page 191 Appendix I: Mechanical Dimensions 3D-CAD (*.stp) models of the X-4xx modules are available at: https://www.controlbyweb.com/x400/x-400_3d.stp https://www.controlbyweb.com/x400/x-400c_3d.stp https://www.controlbyweb.com/x401/x-401_3d.stp https://www.controlbyweb.com/x404/x-404_3d.stp https://www.controlbyweb.com/x404/x-404c_3d.stp https://www.controlbyweb.com/x405/x-405_3d.stp https://www.controlbyweb.com/x406/x-406_3d.stp https://www.controlbyweb.com/x408/x-408_3d.stp https://www.controlbyweb.com/x410/x-410_3d.stp https://www.controlbyweb.com/x418/x-418_3d.stp https://www.controlbyweb.com/x420/x-420_3d.stp https://www.controlbyweb.com/x430/x-430_3d.stp X-4xx Series Users Manual Page 192 Xytronix Research & Design, Inc.OpenOffice 4.1.3