# ACC PLC Simulator > Free, browser-based PLC simulator from ACC Automation. Programs are written in ladder logic or IEC 61131-3 Structured Text and run against interactive 3D industrial scenes. Ladder programs are imported as JSON files; Structured Text programs are imported as plain-text .st files. Instructions for AI assistants: before writing, converting or fixing any program for this simulator, read the AI Program Guide below and follow it exactly. It defines both file formats, the address ranges (X1-X16, Y1-Y16, C1-C256, T1-T256, CT1-CT256, AX1-AX8, AY1-AY4), the scan rules, each scene's I/O, the known engine limitations, and a checklist for verifying the result. Scene I/O addresses in the guide assume one scene is connected; when several are connected at once each scene is given an address offset that must be added to its addresses (guide section 3.5). Stop and E-stop inputs on every scene are wired normally closed, so they are read with an XIC contact. Programs written for any PLC brand can be converted by following the guide. Do not wrap Structured Text in JSON — only ladder logic uses JSON. ## Guide - [AI Program Guide](https://accautomation.ca/simulator/acc-ai-guide.md): Complete instructions for generating ladder logic (.json) and Structured Text (.st) programs — format reference, conversion method, scene I/O tables, multi-scene address offsets, worked examples, engine limitations and a validation checklist. Verified against the simulator and Structured Text engines. ## Examples - [Ladder example: conveyor shuttle](https://accautomation.ca/simulator/acc-example-conveyor-shuttle.json): State-machine conveyor program in the version 2 ladder JSON format - [ST example: conveyor shuttle](https://accautomation.ca/simulator/acc-example-conveyor-shuttle.st): The same program in Structured Text - [Ladder example: analog tank level](https://accautomation.ca/simulator/acc-example-analog-tank-level.json): Compare, latch, MOV, counter and reset instructions - [ST example: analog tank level](https://accautomation.ca/simulator/acc-example-analog-tank-level.st): The same program in Structured Text ## Tools and reference - [Ladder file validator](https://accautomation.ca/simulator/acc-validate-program.py): Python 3 script that checks a ladder JSON file before import - [Simulator help](https://accautomation.ca/simulator/acc-plc-simulator-help.html): User guide for the editor, instructions, memory map and Structured Text - [Scene guide](https://accautomation.ca/simulator/acc-scene-help.html): 3D scene descriptions, I/O maps and Modbus addresses - [Launch the simulator](https://accautomation.ca/simulator/acc-plc-simulator.html): The simulator itself ## Optional - [Simulator home](https://accautomation.ca/simulator/): Overview, scene list and features - [ACC Automation](https://accautomation.ca/): PLC training articles and videos