When designing an automated system that interacts with people, safety is the single most critical element. For a recent collaborative robot project requiring multiple independently controlled light curtains, a standard safety relay was too simple, but a full safety PLC was overkill.
The perfect middle ground is the Schneider Electric 4008-XPSMCMCP0802G-ND.
This modular safety controller is designed to monitor multiple safety functions, conforming to PLe and SIL3 standards. The specific model chosen (the “0802G”) is the standalone CPU base unit. It features 8 safety inputs, 2 pairs of OSSD (Output Signal Switching Device) safety outputs, and 2 programmable status outputs. The “G” suffix indicates spring terminals, which are highly recommended for excellent vibration resistance and faster wiring.
Here is a complete walkthrough on how to power up, connect, and program the XPSMCM for a multi-zone safety application.

Hardware Power and Connection
Before you can configure the system, you need to establish a physical connection to your PC.
- The Power Supply: The controller must be powered by a dedicated 24V DC power supply wired to the terminal blocks. You cannot program or power the unit solely through the data connection.
- The Data Connection: Once the unit is powered with 24V, use a standard USB to Mini-USB cable to connect it to your computer. The Mini-USB 2.0 port is located directly on the front face of the controller.
Software Download
The XPSMCM is programmed using Schneider’s free software, called SoSafe Configurable.
- Download and Install: You can download the latest version of SoSafe Configurable directly from the Schneider Electric website.
- Driver Install: After installing, open SoSafe Configurable and plug in your USB cable. If the USB connection icon in the top toolbar is greyed out, your computer is missing the communication driver.
- Download the driver from the Schneider FAQ page.
- Unzip the file, locate “silabser.inf”, right-click it, and select Install.
Connecting and Access Levels
With the drivers installed, click the USB Connection icon in SoSafe. A menu will open asking for a password.
- The factory password is "SAFEPASS" (all caps).
- By default, the software selects “Level 2”.
- Level 1 (Operation & Maintenance): A read-only mode for factory floor troubleshooting. You can view logs and monitor live inputs, but you cannot modify the configuration.
- Level 2 (Configuration): Full administrative access to build, modify, and download programs to the controller.
Enter the password in Level 2. The software should now show that you are connected to the CP0802 in the bottom right corner.
Starting a New Project
- Click File > New and name your project.
- In the Configuration menu, select “CP0802”.
- A firmware dropdown will appear. It defaults to the newest firmware in the software’s library. Check the bottom right corner of your main SoSafe window to see the actual firmware your physical unit is running, and match the dropdown to that version.
![]()
- Advanced Settings:
- Number of SCOM1 / SCOM2: These represent remote expansion islands. Since we are only using the standalone base unit, set both to 0. (You can have up to 6 total if using expansions).
- Updating from MME Disabled: Check this box. This tells the controller to ignore any removable memory card that might be inserted and only run the program stored on its internal memory.
- Configure modules firmware versions: Check this to force the software to verify that any physical expansion modules you add later match your software configuration perfectly.
- In this case we will leave them blank, so click OK to open your blank hardware canvas.
Building the Logic Configuration
In this example, we are monitoring four SICK light curtains surrounding a cobot. We need two distinct functions:
- Global Safety Stop & Beacon: If any of the four light curtains are blocked, drop a single OSSD output to the robot (forcing it into Collaborative mode) and fire a Status output to turn on a warning beacon.
- Isolated Trigger: If only the front light curtain is blocked, send a separate non-safety signal to the robot to release its gripper to hand out a part.
Step 1: Mapping the Hardware Inputs
- Expand the Input menu on the left side of the screen. Drag four Light Curtain nodes onto the canvas.
- Highlight the first light curtain. In the Properties menu (top right), select the physical inputs it is connected to. When you select the first input (e.g., Input 1), it will automatically select the matched pair (Input 2) for safety redundancy. Do this for all four curtains.
Pro Tip: Turn on Snap to Grid in the top toolbar to keep your nodes aligned. You can also click and hold in a blank area to drag a selection box over multiple items to move them as a group.
Step 2: The Global Stop and Beacon
- Expand the Logic menu and drag in an “AND” node (since we need all 4 curtains to trigger the output).
- In the AND node properties, change the number of inputs from the default 2 up to 4.
- Connect the output of each light curtain to an input on the AND node.
- Expand the Output menu and drag in an OSSD node.
- In the OSSD properties:
- Enable the Status Output.
- Check OSSD Feedback unconnected (since we are not using an external device monitoring loop).
- Assign the physical outputs to OSSD 1A and 1B.
- Connect the output of the AND node to the input of the OSSD node.
- Drag a Status node onto the canvas. Connect the new status pin on your OSSD block to the input of this Status node. Assign it to physical output Status 1. (This will trigger your beacon whenever the OSSD drops).
Step 3: The Isolated Gripper Trigger
Because the gripper release is a functional trigger and not a critical safety E-stop, we don’t need a redundant OSSD output. We can bypass it entirely.
- Drag another Status node onto the canvas.
- Draw a line connecting the output of the Front Light Curtain directly to the input of this new Status node. (This line will branch off before the curtain’s signal reaches the AND block).
- Assign this node to physical output Status 2.
Now, breaking the front curtain triggers Status 2 (the gripper) independently, while still participating in the AND block to trigger the global safety stop.
Downloading and Testing
- Save your project using the disk icon.
- Open the Communication menu and select Send Configuration.
- Click Yes on the prompt. A progress bar will appear, and it will notify you when programmed successfully.
- Live Testing: Click the Graphical Monitor icon
in the toolbar. Type in the SAFEPASS password again. You will now see a live feed from your controller.
As you physically block the light curtains on the machine, you will see the connection lines on your screen turn red, showing you exactly which outputs are dropping in real-time. To exit the live view, simply click the monitor icon again.

At this point, feel free to disconnect the USB cable, and the XPSMC will remember its logic every time it is powered on.











