Overview
The Access Request Module AI, CE-SA-017-0001__2 is intended to interface up to 4 guardlocks (lockable interlock) with MachineMotion AI.
This document covers requirements for latest version of Vention’s Access Request Module. For previous version, refer to link below:
Features
Compatible with every model of MachineMotion AI
Configuration-free, plug-and-play
Daisy-chainable
RGB LED indicator for safety status (emergency stop, faults)
Single-color LED indicators for power and communication status
Can be connected to up to 4 guardlock devices but only one with high duty (>1 opening per hour)
Included cables
1x Safety Extension cable (5m) - CE-CA-102-5001__2
1x Dry Contact Jumper - CE-JP-000-0002
2x Safety Jumper - CE-SA-102-0001
2x Guard Lock T-Splitter - CE-SA-124-0001
Important Notes
Safety
The Access Request Module AI performs safety functions as a part of a whole installation or machine. A complete safety system normally includes sensors or input units, logic units and contactors or output units. The manufacturer of the installation or machine is responsible for ensuring proper functioning of the whole system. The total concept of the control system into which the Safety Module is integrated must be validated by the user. Vention cannot guarantee all specifications of an installation or a machine without being responsible for the risk assessment and the design of the safety system. Vention takes over no liability for recommendations which are given or implied in the following description.
The following items must be taken into consideration during the design, risk assessment & installation of the safety system:
The Safety Module shall not be put into operation only after the safety functions have been tested during the commissioning.
The use of the Safety Module does not prevent the automatic reset of devices connected to the Safety OUT port.
The use of the Safety Module does not prevent the automatic start of the devices connected to the Safety OUT ports. According to EN IEC 60204-1:2018 and EN ISO 10218-1:2011 it is not allowed to restart automatically after emergency stop. Therefore the control systems of the connected devices have to disable the automatic start after emergency stop.
Opening the Safety Module or implementing unauthorized changes voids any warranty.
Functional error! Danger to life, risk of serious injuries or property damage
The Access Request Module AI may only be used in VENTION safety ecosystem;
The Access Request Module AI does not monitor the input redundant signals at the End Effector IN and Position IN ports. If the connected device at the Position IN port does not have monitoring of its output signals, the performance level of the safety function can be reduced;
If the a jumper is used for the Position IN port but a limit switch is connected to the End effector IN port, the performance level of the safety function can be reduced;
No emergency stop button shall be connected to the Safety IN port;
If devices with OSSD signals are connected to the both Position IN and End Effector IN ports, the device connected in the End Effector IN port shall accept OSSD inputs and be placed in cascade using the pins 1 and 3 as OSSD inputs;
As per ISO/TR 24119:2015, only 1 guardlock shall be high duty (opening the guardlock at a frequency greater than 1 per hour);
A maximum of 4 guardlock should be connected to maintain the performance level of the module;
Bypassing the guardlock with the Manual override may expose the operator to residual risk (heavy boxes in grippers, robot in wrong position);
The Access Request Module AI is designed to operate in indoor environments without dust or high humidity. Dust and dampness may lead to malfunction. Do not install or operate the Safety Module outdoors;
The machine shall be designed in such a way that it is not possible to press the reset button from inside a safeguarded area without triggering one of the devices connected to the Device ports.
Important Information
The electronic fuse contained in the Mode Switching Safety Module AI protects from internal faults and external faults, but the 24V power output on the Safety In port is not protected by the electronic fuse. The electronic fuse has an auto-retry mechanism (it does not latch faults and does not require a power cycle to reset).
As per ISO/TR 24119:2015, only 1 guardlock shall have a high duty (opening the guardlock at a frequency greater than 1 time per hour).
Bypassing the guardlock with the manual override may expose the operator to residual risk (heavy boxes in grippers, robot in wrong position, etc.).
Technical specs
General Specifications
Item | Specification |
---|---|
Part Number | |
Weight | 0.8kg |
Dimensions | 19.0 x 15.0 x 9.0mm |
Material |
|
Operating Temp | 0 to 40°C |
Electrical Specifications
Item | Specification |
---|---|
Nominal input voltage | 24 VDC (Class 2 or SELV power supply**) |
Input voltage range | 19.2 ~ 26.4 VDC |
Operating power consumption | 2.5 W without safety devices |
Short circuit protection | Internal electronic fuse, max 2.5A |
** Note: In North America, the Safety Module shall be supplied by a certified class 2 power supply. In Europe, the Safety Module must be supplied by an SELV circuit. When powered by the MachineMotion those requirements are met.
Physical Interface
![]() Figure 1: Physical Interface |
LED Indicators
Name | LED Color | Indicates (when ON) |
---|---|---|
POWER | White | Power supplied to the module |
COMM | White | Ethernet communication functional |
FUSE | Red | Module internal fuse tripped |
STATUS | Off | Module disconnected |
STATUS | Green | System operational |
STATUS | Orange | Error |
STATUS | Red | System emergency stop |
STATUS | Blinking Red | Emergency stop after unlock is granted |
STATUS | Blinking Blue | Processing unlock request |
Functionality
The Access Request Module AI enables guardlock devices to be interfaced with MachineMotion AI. A guard lock is a device that prevents a user to open a door or gate based on a safety or programming condition. The 2 safety conditions to be met are represented by the Position In and the End Effector In ports. The Position input can be connected to a safe robot output or to a fail-safe inductive sensor (CE-SN-010-0001) whose OSSD outputs are high when the source of danger (e.g. robot arm) is in a safe position. The End Effector input can be connected to a redundant dry contact sensor whose contacts are closed when the end effector (e.g. robot gripper) does not create a hazard (e.g. no payload). The End Effector In condition is optional, meaning that if there is no residual risk involving an end effector in a cell, the End Effector input can be jumped with a 4-position yellow jumper (CE-JP-000-0002).
Once everything is properly connected, software on the MachineMotion must be running in order to send the lock/unlock request. This architecture allows completely flexibility on the functionality. Pressing the buttons of the Access Request Module AI sends a message to the MachineMotion AI. Optionnally, the MachineMotion AI may send a command to park the robot or gantry in a safe position as confirmed by the Position input. The MachineMotion AI should then send a request to the Access Request Module AI to lock/unlock the door. In order for an access request to be successful, the cell must be in a safe state. Therefore, access request modules must be integrated into your application. See below for MachineLogic and MachineLogic Python examples.
Making a Lock or Unlock Request
The Access Request Module AI will accept requests to unlock under the following conditions:
Interlocks are detected on the guardlock port connectors
The guardlocks are closed and locked
The Position In port OSSD inputs are high & End Effector In port dry contacts are closed
![]() Figure 2: Successful unlock sequence |
The Access Request Module AI will accept requests to lock under the following conditions:
Interlocks are detected on the guardlock port connectors
The guardlocks are closed and unlocked
The Position In port OSSD inputs are high & End Effector In port dry contacts are closed
![]() Figure 3: Successful lock sequence |
Port definitions and pinouts
![]() Figure 4: Access Request Module AI ports |
Safety Out - M12, male, 12-pin, A-Keyed
The Safety Out port connects to the Safety In port of the MachineMotion AI, or to another Safety Module when daisychaining.
Pin | Function |
---|---|
Pin 1 | 24 VDC input |
Pin 2 | 0V input |
Pin 3 | OSSD output A |
Pin 4 | 24 VDC input |
Pin 5 | OSSD output B |
Pin 6 | 24 VDC input |
Pin 7 | Reset input |
Pin 8 | 0V |
Pin 9 | Ethernet RX+ |
Pin 10 | Ethernet RX- |
Pin 11 | Ethernet TX+ |
Pin 12 | Ethernet TX- |
Safety In - M12, female, 12-pin, A-Keyed
The Safety In port connects to the Safety Out port of another Safety Module when daisychaining. If the port is unused, plug the included yellow jumper (CE-SA-102-0001).
Pin | Function |
---|---|
Pin 1 | 24 VDC output |
Pin 2 | 0V output |
Pin 3 | OSSD input A |
Pin 4 | 24 VDC output |
Pin 5 | OSSD input B |
Pin 6 | 24 VDC output |
Pin 7 | Reset output |
Pin 8 | 0V output |
Pin 9 | Ethernet RX+ |
Pin 10 | Ethernet RX- |
Pin 11 | Ethernet TX+ |
Pin 12 | Ethernet TX- |
Door 1 & 2 - M12, female, 12-pin, A-Keyed
To connect 2 guarlocks to this port, use the provided guardlock T-splitter (CE-SA-124-0001). If the port is unused, plug the included yellow jumper (CE-SA-102-0001).
Pin | Function |
---|---|
Pin 1 | Lock signal 24V output |
Pin 2 | 0V |
Pin 3 | Guardlock 1 & 2 dry-contact input 1-1 |
Pin 4 | Guardlock 1 & 2 dry-contact input 1-2 |
Pin 5 | Guardlock 1 & 2 dry-contact input 2-1 |
Pin 6 | Guardlock 1 & 2 dry-contact input 2-2 |
Pin 7 | 24V (fused) |
Pin 8 | Gate feedback input |
Pin 9 | NC |
Pin 10 | NC |
Pin 11 | NC |
Pin 12 | NC |
Door 3 & 4 - M12, female, 12-pin, A-Keyed
To connect 2 guarlocks to this port, use the provided guardlock T-splitter (CE-SA-124-0001). If the port is unused, plug the included yellow jumper (CE-SA-102-0001).
Pin | Function |
---|---|
Pin 1 | Lock signal 24V output |
Pin 2 | 0V |
Pin 3 | Guardlock 3 & 4 dry-contact input 1-1 |
Pin 4 | Guardlock 3 & 4 dry-contact input 1-2 |
Pin 5 | Guardlock 3 & 4 dry-contact input 2-1 |
Pin 6 | Guardlock 3 & 4 dry-contact input 2-2 |
Pin 7 | 24V (fused) |
Pin 8 | Gate feedback input |
Pin 9 | NC |
Pin 10 | NC |
Pin 11 | NC |
Pin 12 | NC |
Position In - M12, female, 4-pin, A-Keyed
Pin | Function |
---|---|
Pin 1 | 24V (fused) |
Pin 2 | OSSD input A |
Pin 3 | 0V |
Pin 4 | OSSD input B |
End Effector In - M12, female, 4-pin, A-Keyed
The End Effector In port allows to connect a redundant dry contact feedback of the machine’s end effector status (e.g. a box gripper sensor to confirm the absence of a box). If the port is unused, plug the included 4-position yellow jumper (CE-JP-000-0002).
Pin | Function |
---|---|
Pin 1 | Dry contact input 1-1 |
Pin 2 | Dry contact input 1-2 |
Pin 3 | Dry contact input 2-1 |
Pin 4 | Dry contact input 2-2 |
Status Out - M12, male, 4-pin, A-Keyed
The Status Out port allows to daisychain several Access Request Module AI without requiring a second set of safe position sensor and end effector sensor inputs. Simply connect the Status Out port of the module with sensors to the Position In port of the module without sensors.
Pin | Function |
---|---|
Pin 1 | NC |
Pin 2 | OSSD output A |
Pin 3 | 0V |
Pin 4 | OSSD output B |
Mounting
Install the module mounting bracket (CE-HW-005-1002) to the extrusion with the screws provided (HW-FN-003-0018). Install the module onto the mounting bracket as illustrated below.
![]() Figure 5: Module Mounting | ![]() Figure 6: Module Mounting |
Wiring Diagrams
![]() Figure 7: Access Request Module AI with 4 guardlocks |
![]() Figure 8: Daisy-chaining Access Request Module AI |
![]() Figure 9: Access Request Module AI with Robot Safety Module |
![]() Figure 10: Access Request Module AI with 2 guardlocks |
*Note: Insert a jumper on any unused safety input for proper functionality. See table below to identify the appropriate jumper part number (included with the module).
Jumper Part Number | Description | Target module | Port restrictions |
---|---|---|---|
CE-SA-125-0001 | M12, male, 12 pins, black jumper | Muting Safety Module AI (CE-SA-015-0001__2) | Strictly reserved for Device ports |
CE-JP-000-0002 | M12, male, 4 pins, yellow jumper | Access Request Module AI (CE-SA-017-0001__2) | Strictly reserved for End Effector port |
CE-SA-102-0001 | M12, male, 12 pins, yellow jumper | All modules | Other unused safety input ports |
HTTP commands
The Access Request Module AI can receive commands from HTTP to lock or unlock the doors. This enables a user to lock/unlock doors on events, like a push button press.
Route | Data Type | Format | Description |
---|---|---|---|
| json |
| Will try to lock or unlock the doors on the target device |
HTTP /access-request return codes :
Code | Full json payload |
---|---|
0 | {“code”:0,”msg”:”Success”} |
1 | {“code”:1,”msg”:”Post must be of JSON type with format {“serial-number”: INT, “command”: “lock” | “unlock” |
2 | {“code”:2,”msg”:”Smart Module not found.”,”errors”:[]} |
3 | {“code”:3,”msg”:”Smart Module not connected.”,”errors”:[]} |
4 | {“code”:4,”msg”:”Smart Module is not an Access-Request Module.”,”errors”:[]} |
5 | {“code”:5,”msg”:”Access-Request Module is not accepting requests. Topic not initialized.”,”errors”:[]} |
6 | {“code”:6,”msg”:”Access-Request Module is not accepting requests. Cell is not safe”,”errors”:[]} |
7 | {“code”:7,”msg”:”Access-Request Module is not accepting requests. Door is Open.”,”errors”:[]} |
8 | {“code”:8,”msg”:”door is already locked.”,”errors”:[]} |
9 | {“code”:9,”msg”:”door is already unlocked.”,”errors”:[]} |
10 | {“code”:10,”msg”:”Access-Request Module was unable to lock”,”errors”:[]} |
11 | {“code”:11,”msg”:”Access-Request Module was unable to unlock”,”errors”:[]} |
99 | {“code”:99,”msg”:”error”} |
Error codes
Code | Errors | Description |
1 |
| shortcircuit, cross fault, or wrong feedback |
2 |
| shortcircuit, cross fault, wrong feedback, feedback not simultaneous |
9 |
| Door has a problem. Error in door signals / miswiring |
10 |
| shortcircuit, cross fault |
11 |
| Signals not simultaneous |
12 |
| shortcircuit, cross fault, or wrong feedback |
MQTT topics
Device Type access-request
Topic | Data Type | Description |
---|---|---|
| int (0 or 1) | 0 = button released, 1 = button pressed |
| int (0 or 1) | 0 = button released, 1 = button pressed |
| int (0 or 1) | 0 = disconnected, 1 = connected |
| string array | Array of string which indicates all current errors |
| int | Temperature of the device in celcius |
| int (0 or 1) | Status of the input voltage on safety-in port. |
| int (0 or 1) | Status of the output voltage on safety-out port. |
| int (0 or 1) | Indicates if a door is opened |
| int (0 or 1) | Indicates if doors are locked |
| int (0 or 1) | Indicates if the module accepts lock/unlock requests |
| int (0 or 1) | Status of the input of the IN and END port. Status out port. |
| int (0 or 1) | Status of the user request |
| int (0 or 1) | Status of the request |
| int (0 or 1) | Indicates if there’s a transition between lock and unlocked/unlocked and locked |
| int (0 or 1) | 0 = locked, 1= unlocked |
Integration in MachineLogic
Usage of the Access Request Module in Code-Free application requires setting up the proper messages using MQTT and HTTP communication.
For any use-case requiring the use of the Access Request Module AI with MachineLogic Code-Free programming, please contact integrationsupport@vention.cc
MachineLogic Python Unlock Sequence Example
Below is an example of how the Access Request Module AI can be used in MachineLogic Python applications.
from machinelogic import Machine, MachineException
### Program ###
# Start coding here!
# Documentation can be found at vention.io/resources/guides/machinelogic-python-programming-514
import requests
from time import sleep
def request_access(machine_ip, module_serial_number, unlock = True):
unlock_string = "unlock" if unlock else "lock"
payload = {
"serial-number": module_serial_number,
"command": unlock_string
}
try:
r = requests.post(
f"http://{machine_ip}/firmware/smartModules/access-request",
json = payload
)
finally:
return ( r.status_code == 200, r.text)
if __name__ == "__main__":
ip = '192.168.7.2'
mmai = Machine(ip)
serial_number = 'SN1234' # Replace this with the serial number found on the device label
def handle_module_status(topic, payload):
print(topic, payload) # Display incoming module statuses
def handle_access_request(topic, payload): # Callback for module button press
print("handling request", topic, payload)
if not int(payload): # Button is released, do nothing
return
is_unlock_request = topic.split('/')[3] == "button-unlock"
success, info = request_access(ip, serial_number, is_unlock_request)
print(info)
mmai.on_mqtt_event(
f'safety-module-hub/access-request/{serial_number}/button-lock',
handle_access_request
)
mmai.on_mqtt_event(
f'safety-module-hub/access-request/{serial_number}/button-unlock',
handle_access_request
)
mmai.on_mqtt_event(
f'safety-module-hub/access-request/#',
handle_module_status
)
while True:
sleep(1)
Safety Data
The Access Request Module AI realizes the following safety functions:
System emergency stop output at the Safety OUT connector from the Safety IN port (E-stop_SafetyOUT);
Guardlock safety function without safe position input (GuardLock);
Guardlock safety function with safe position input (GuardLock_PositionIN).
For each of these functions, safety data can be found in the following tables. Due to potential fault masking, the safety data is dependent on the number of doors and their frequency of use.
The table below refers to the safety data with only one door or no door frequently used and up to 4 not frequently used doors:
Safety Function | PL | Cat. | MTTFd | DCavg | PFHd |
---|---|---|---|---|---|
E-stop_SafetyOUT | e | 3 | 438 | 99% | 4.29E-08 |
GuardLock | e | 3 | 64 | 99% | 8.84E-08 |
GuardLock_PositionIN | e | 3 | 64 | 99% | 8.84E-08 |
The table below refers to the safety data with no door frequently used and up to 30 doors not frequently used doors or 1 frequently used doors and up to 4 not frequently used doors:
Safety Function | PL | Cat. | MTTFd | DCavg | PFHd |
---|---|---|---|---|---|
E-stop_SafetyOUT | e | 3 | 438 | 99% | 4.29E-08 |
GuardLock | d | 3 | 64 | 91.3% | 2.13E-07 |
GuardLock_PositionIN | d | 3 | 64 | 91.3% | 2.13E-07 |
The above information have been calculated based on the following operation conditions:
Data | Value | Unit |
---|---|---|
dop | 365 | days/years |
hop | 24 | hours/days |
tcycle | 600 | s/cycle |