PLC Gateway Status

Gateway running since: {{ start_time }}

{% for plc_name, areas in summary.items() %} {% set plc_status = plc_statuses.get(plc_name, "unknown") %} {% set plc_class = { 'connected': 'plc-connected', 'disconnected': 'plc-disconnected' }.get(plc_status, 'plc-never-connected') %}

PLC:{{plc_name}} (Status: {{plc_status}})

{% for area_name, area in areas.items() %} {% set status_class = { 'connected': 'status-connected', 'disconnected': 'status-disconnected', 'never_connected': 'status-never-connected' }.get(area.status, 'status-disconnected') %} {% set status_text = { 'connected': 'Connected', 'disconnected': 'Disconnected', 'never_connected': 'Never connected' }.get(area.status, area.status) %} {% endfor %}
Area Name Type Size (bytes) Status PLC Connection Last Update
{{area_name}} {{area['type']}} {{area['size']}} {{status_text}} {{area['plc_connection_status']}} {{area['last_update']}}
{% endfor %}

API Endpoints

Single Read: GET /api/read/<plc_name>/<area_name>/<offset>/<length>
Example: /api/read/PLC1/DB100_Read/10/4
Single Write: POST /api/write/<plc_name>/<area_name>/<offset>
Body: Raw binary data
Example: POST /api/write/PLC1/DB100_Write/10 with 4 bytes of data
Single Read_Bool: GET /api/read_bool/<plc_name>/<area_name>/<offset>/<length>
Example: /api/read_bool/PLC1/DB100_Read/0/2
Single Write_Bool: POST /api/write_bool/<plc_name>/<area_name>/<offset>
Body: Raw binary data
Example: POST /api/write_bool/PLC1/DB100_Write/0
Batch Read: POST /api/batch_read
Body: JSON array of read requests
Example: [{"plc_name":"PLC1", "area_name":"DB100_Read", "offset":0, "length":4}]
Batch Write: POST /api/batch_write
Body: JSON array of write requests
Example: [{"plc_name":"PLC1", "area_name":"DB100_Write", "offset":0, "data":[1,2,3,4]}]
Configuration: GET/POST /api/config
Manage gateway configuration