Hi,
thanks for your help.
Sorry for not answering soon. Here is update from our side.
We are able to connect to PLC using E3. We used TSEND_C and TRCV_C. Unfortunetely, we are not able to set the value of data block in PLC.
Here is our record, the name of our station is cpu1.
The variable is configured as a byte.
record
(bi, "testrcv")
{
field (DESC, "test description")
field (DTYP, "S7plc")
field (INP, "@cpu1/0")
field (SCAN, "I/O Intr")
field (PINI, "YES")
field (ZNAM, "off")
field (ONAM, "on")
}
When we run caput command on 'testrcv' the change of the PV is only seen locally.
The firewall is disabled and we can see communication between PLC and our VM (we are using CentOS 7) in Wireshark.
Do you have any ideas what can be problem ?
Cheers,
Mateusz Nabywaniec
Od: Miklós Boros <Miklos.Boros at ess.eu>
Wysłane: piątek, 29 października 2021 21:06
Do: Mateusz Nabywaniec <mateusz.nabywaniec at s2innovation.com>; Dominik Domagała <Dominik.Domagala at s2innovation.com>; dirk.zimoch at psi.ch <dirk.zimoch at psi.ch>; Timo Korhonen <Timo.Korhonen at ess.eu>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Temat: RE: Failed connection using e3-s7plc to Siemens S7-1500
Hi,
The timeout is most likely because the PLC does not send anything.
The s7plc module needs to get some data before the timeout.
If the telnet connects, you should see some binary data in the terminal.
We are using the T_SEND_C block to cyclically send a word array to the IOC. (and modbus to get data MB_SERVER)
TSEND_C is a nice way to handle the connection (open/close) and send in one block.
#TSEND_C_DB(REQ := #SendTrigger,
CONT := TRUE,
LEN := INT_TO_UINT(IN := #BytesToSend),
DONE => #SendDone,
BUSY => #SendBusy,
ERROR => #SendError,
STATUS => #SendStatus,
CONNECT := #SendConnData,
DATA := #PLCToEPICSData);
#SendConnData.LocalPort := INT_TO_UINT(IN := #S7Port); (we use port 2000)
#SendConnData.ConnectionType := 11;
#SendConnData.InterfaceId := #InterfaceID; (64 for X1)
#SendConnData.ID := INT_TO_WORD(IN := #S7ConnectionID); (we have 256)
I have a 100ms SendTrigger for most application.
Cheers,
Miklos
Feladó: Mateusz Nabywaniec <mateusz.nabywaniec at s2innovation.com>
Küldve: Friday, October 29, 2021 4:29 PM
Címzett: Miklós Boros <Miklos.Boros at ess.eu>; tech-talk at aps.anl.gov; Dominik Domagała <Dominik.Domagala at s2innovation.com>; dirk.zimoch at psi.ch; Timo Korhonen <Timo.Korhonen at ess.eu>
Tárgy: ODP: Failed connection using e3-s7plc to Siemens S7-1500
thanks for messages. Update from our side:
Loading... Please enable _javascript_ or update your browser.
|
We can connect to 102 using telnet. Here is output after running st.cmd:
10/29/21 10:17:30.277 s7plcCloseConnection cpu1
10/29/21 10:17:30.469 s7plcConnect cpu1: connected to 192.168.0.10:102
10/29/21 10:17:41.546 s7plcWaitForInput cpu1: timeout after 10 seconds.
10/29/21 10:17:41.546 s7plcReceiveThread cpu1: waiting for input failed: Connection timed out
10/29/21 10:17:41.546 s7plcCloseConnection cpu1
10/29/21 10:17:41.779 s7plcConnect cpu1: connected to 192.168.0.10:102
10/29/21 10:17:52.806 s7plcWaitForInput cpu1: timeout after 10 seconds.
10/29/21 10:17:52.806 s7plcReceiveThread cpu1: waiting for input failed: Connection timed out
10/29/21 10:17:52.806 s7plcCloseConnection cpu1
10/29/21 10:17:53.068 s7plcConnect cpu1: connected to 192.168.0.10:102
10/29/21 10:18:04.070 s7plcWaitForInput cpu1: timeout after 10 seconds.
10/29/21 10:18:04.070 s7plcReceiveThread cpu1: waiting for input failed: Connection timed out
10/29/21 10:18:04.070 s7plcCloseConnection cpu1
10/29/21 10:18:04.085 s7plcConnect cpu1: connected to 192.168.0.10:102
10/29/21 10:18:15.332 s7plcWaitForInput cpu1: timeout after 10 seconds.
10/29/21 10:18:15.332 s7plcReceiveThread cpu1: waiting for input failed: Connection timed out
10/29/21 10:18:15.332 s7plcCloseConnection cpu1
Do you have any suggestions about that?
S2Innovation, Cracow, Poland
Usually the issue is in the PLC.
You can doublecheck it by telnet into the PLC IP on port 2000.
for example: telnet 192.168.0.100 2000
You should get an active connection and if you send something you should see it too in a binary form.
If you can't telnet it means the PLC does not open the port 2000 properly.
Check if you use the proper HW_ID for T_CON. X1 is usually 64 and X2 is 72.
The send block also needs a constant trigger.
Tell me if you need an example.
Hello,
Together with @Dominik Domagała we are trying to connect with Siemens S7-1500 using e3-s7plc module (https://gitlab.esss.lu.se/e3/wrappers/communication/e3-s7plc)
created by ESS.
We have EPICS 7.0.5 installed on CentOS 7 VM as well as E3 modules.
Here is our start cmd based on : http://epics.web.psi.ch/software/s7plc/YHLhtcPLCa.pdf
‘’’
require s7plc
epicsEnvSet("TOP","$(E3_CMD_TOP)/..")
s7plcConfigure cpu1,192.168.0.1,2000,240,240,1,2000,500
dbLoadRecords ("$(TOP)/db/records.db")
iocInit
‘’’
Unfortunetely we have the error:
`s7plcConnect cpu1: background connect to 192.168.0.1:2000 failed: Connection refused.`
The firewall on VM and host side are disabled.
PLC Program configuration:
-Full Access.
-Enabled PUT/GET connections.
-Data blocks ale with full access , not optimized
-TCON in stand by with status BUSY
TCON configuration:
-Active Est. ON
-Unspecified partner with IP address (E3 address)
-TCP connection type by port 2000.
When we are starting E3 server we are getting information as below
10/28/21 08:44:00.763 s7plcConnect cpu1: background connect to 192.168.0.1:2000 failed: Connection refused
We can’t get why E3-s7plc does not work on our machine. Does anybody had similar issue or successfully connected using e3-s7plc with Siemens S7-1513-1?
Thanks in advance,
Mateusz Nabywaniec
S2Innovation, Cracow, Poland
|