Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Veilige SFTP-uploads Implementeren in IEC 61131-3 met Curl

Enkele weken geleden ontving ik de volgende vraag. U moet een logbestand uploaden naar een SFTP-server, door een programma te gebruiken dat in de ESM draait.
Het SSH File Transfer Protocol (ook Secure File Transfer Protocol, of SFTP) is een netwerkprotocol dat bestandsa toegang, bestandsoverdracht en bestandsbeheer biedt over elke betrouwbare datastroom. Het is ontworpen door de Internet Engineering Task Force (IETF) als een uitbreiding van het Secure Shell-protocol (SSH) versie 2.0 om veilige bestandsoverdracht mogelijk te maken.

SFTP zit in de PLCnext firmware, dus dit zou geen probleem hoeven te zijn.

Stap 1: Ik begon met het aanmaken van een logbestand door gestructureerde tekst te gebruiken. Voorbeelden hoe dit te doen, vindt u hier:

https://www.plcnext-community.net/en/hn-makers-blog/438-datalogging-in-iec-61131-3-the-basic-principle.html

https://www.plcnext-community.net/en/hn-makers-blog/447-datalogging-in-iec-61131-3-create-your-own-file-manager.html

Stap 2: Ik had een SFTP-server nodig om mijn PLC-applicatie te testen. Ik heb CrushFTP gebruikt, wat ik in een virtuele machine installeerde die op mijn laptop draaide.

Na de installatie van de software, moet u een admin-gebruiker aanmaken voor de webinterface. Eenmaal dit gedaan is, kunt u een gebruiker aanmaken voor de PLC-toegang.

Voor dit voorbeeld: gebruiker = PLCnext, wachtwoord = 123456789

Stap 3: Een bestand uploaden via de commandoregel.

Veilige SFTP-uploads Implementeren in IEC 61131-3 met Curl

In de bovenstaande screenshot ziet u dat we eerst een commando geven en in een tweede stap het wachtwoord invoeren. Als we deze procedure willen automatiseren met de "PBCL_SysLinuxShell_1" FB, hebben we een enkelvoudig commando nodig.

Deze FB is te vinden in de PLCnextBase library. (https://www.plcnextstore.com/#/720)

Dus we hebben een ander commando nodig om de bestandsupload uit te voeren. Laten we eens kijken naar Curl.

Veilige SFTP-uploads Implementeren in IEC 61131-3 met Curl

De versie die geïnstalleerd is met firmware 2020.6.1 ondersteunt geen SFTP. Dankzij Oliver Warneke kon ik een andere versie van Curl installeren. We zullen het complete installatieproces niet doorlopen, maar het resultaat is een versie die SFTP ondersteunt. Met firmware 2021.0.0 LTS kunt u de volgende versie gebruiken.

Veilige SFTP-uploads Implementeren in IEC 61131-3 met Curl

Dankzij Curl kunnen we nu een ander commando gebruiken.

curl -k -sS --key ~/.ssh/id_rsa --max-time 25 --connect-timeout 10 "sftp://192.168.1.50:22/test/Upload/" --user "PLCnext:12345679" -T "/opt/plcnext/Test.pdf" --ftp-create-dirs

Wanneer u dit commando gebruikt voor de Shell FB, kunt u het resultaat zien in het volgende logbestand om uw programma te controleren.

/opt/plcnext/PLCnextBase.ServiceProvider.log

Enkele uitleg over de argumenten:

-k, --insecure

(TLS) Standaard wordt elke SSL-verbinding die curl maakt geverifieerd op beveiliging. Deze optie laat curl doorgaan en opereren zelfs voor serververbindingen die anders als onveilig zouden worden beschouwd. De serververbinding wordt geverifieerd door te controleren of het certificaat van de server de juiste naam bevat en met succes wordt geverifieerd met de cert-store.

-S, --show-error

Wanneer gebruikt met -s, --silent, laat het curl een foutmelding zien als het mislukt.

-s, --silent

Stille of quiete modus. Toon geen voortgangsmeter of foutmeldingen. Maakt Curl stil. Het zal nog steeds de data die u vraagt uitvoeren, potentiëel zelfs naar de terminal/stdout tenzij u het omleidt. Gebruik -S, --show-error naast deze optie om de voortgangsmeter uit te schakelen maar toch foutmeldingen te tonen.

--key <key>

(TLS SSH) Privésleutel bestandsnaam. Laat u uw privésleutel in dit afzonderlijke bestand opgeven. Voor SSH, als niet gespecificeerd, probeert curl de volgende kandidaten in volgorde: '~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa'.

-m, --max-time <seconden>

Maximale tijd in seconden die u de gehele operatie toestaat. Dit is nuttig om te voorkomen dat uw batchjobs urenlang hangen door trage netwerken of links die wegvallen.

--connect-timeout <seconden>

Maximale tijd in seconden die u curl's verbinding toestaat. Dit beperkt alleen de verbindingsfase, dus als curl binnen de gegeven periode verbindt, gaat het door – zo niet, dan stopt het.

-T, --upload-file <bestand>

Dit overbrengt het gespecificeerde lokale bestand naar de externe URL. Als er geen bestanddeel in de gespecificeerde URL zit, zal curl de lokale bestandsnaam toevoegen.

--ftp-create-dirs

(FTP SFTP) Wanneer een FTP of SFTP URL/operatie een pad gebruikt dat momenteel niet bestaat op de server, is het standaardgedrag van curl om te falen. Met deze optie probeert curl in plaats daarvan de ontbrekende mappen aan te maken.

Referenties:

https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol

https://www.crushftp.com/index.html

https://curl.se/docs/manpage.html

Industriële technologie

  1. De Command-Line Interface Gebruiken met SPICE
  2. Groei Ontgrendelen: Hoe eCommerce uw Bedrijf Vooruit Kan Drijven
  3. Industriële IoT Benutten voor Groei: Verbeyond Kostenbesparing
  4. Vier essentiële tests om de efficiëntie van power transformatoren te evalueren
  5. Stroomuitvalpreventie: 5 Essentiële Strategieën om Uw Bedrijf te Beschermen
  6. Brownouts vs. Blackouts Begrijpen: Belangrijke Verschillen en Bedrijfsimpact
  7. Belangrijke Factoren Die De Frequentie Van Dieselmotor Onderhoud Beïnvloeden
  8. De Juiste Noodgenerator Kiezen: 4 Sleutelvragen Voor Betrouwbare Stroom
  9. Tesla's virtuele elektriciteitscentrale: de mondiale energienetwerk transformeren
  10. Ontdek Hoe Energiemonitoring Efficiëntie Drijft in Industrie 4.0 – Neem Deel aan Onze Expert Webinar
  11. Fabrieksefficiëntie verhogen: teamwork beheersen voor superieur management