In this post, I will explain how to disable the Profinet-Devices that are connected into your Profinet Network. The picture shown below is a S7-1500 and ET200SP. They are connected by Profinet. I will show how to disable the PLC.RemoteS1.
D_ACT_DP
Here is the Function to implement my task.
Caution!
- Only Profinet IO can be disabled in the S7-1200.(Profibus is NG).
- Firmware V1.8 is necessary in the S7-1500.
Interface
- Input
- REQ:Bool
- True=Execute
- Mode:USINT
- Mode=0、Check the Current status of this IO Device.
- Mode=1、Enable this IO Device.
- Mode=2、Disable this IO Device
- LADDR:HW_DEVICE
- The Device Number of the IO Devices.
- REQ:Bool
- Output
- RET_VAL:INT
- Result
- BUSY:Bool
- Function is Executing or not.
- RET_VAL:INT
How to find the LADDR
here the rules of LADDR variables:
IOControllerName_IODeviceName~IODevic.
This time, the LADDR variables should be:PLC1_RemoteS1~IODevice.
Implemention
Create a Mode variable to operate the enable/disable function.
Call the D_ACT_DP.
Depending on the value of MODE, IODevices will be disabled/enabled.
Result
Execute the Function with Mode2 and monitor your network.
you will see the PLC.RemoteS1 is in the “Disbale” Condition.
You can use the Modify function to directly turn ON/OFF the Inputs.
Execute the Function with Mode1 and monitor your network.
Now the PLC1.RemoteS1 is in an Enable Condition.
You can not directly modify the Inputs in your program now.
Where can we use?
Example1 – Machine manufacture can depend on the customer request to flexibly disable/Enable the devices that do not use.They can just make a HMI Switch and using OB100(Start-up) to implement the task.
Example2 – Using this function while debugging. While all the IO Devices are in enable status,you can not modify the value by using Ctrl+F2,Ctrl+F3.