Membaca Date & Time pada S7

Pada suatu kesempatan, saya berhadapan pada suatu pemrograman dengan triger waktu real.
Dengan studi kasus seperti ini, setiap pergantian shift beberapa data di log dalam suatu data block yang kemudian akan ditransfer ke database SCADA. Untuk melakukan ini maka PLC harus bisa membaca kapan aja pergantian shift tersebut dilakukan, dengan arti lain bahwa PLC harus bisa membaca jam.

Untuk contohnya menggunakan CPU 317-2 PN/DP serta fasilitas library bawaan Simatic Manager.

– Untuk langkah pertama yaitu mencocokkan DT PLC dengan DT PC

– Menyiapkan DB untuk Date and Time PLC


Tipe data untuk DATE_AND_TIME memiliki range 8 byte

– System Function SFC1 READ_CLK


– SCRIPT

// Read Clock Function
CALL  “READ_CLK”
RET_VAL:=MW0
CDT    :=”Data Date Time”.PLCDt

// Data Tahun
L     DB1.DBB    0
T     MB    10

// Data Bulan
L     DB1.DBB    1
T     MB    11

// Data Tanggal
L     DB1.DBB    2
T     MB    12

// Data Jam
L     DB1.DBB    3
T     MB    13

// Data Menit
L     DB1.DBB    4
T     MB    14

// Data Detik (s)
L     DB1.DBB    5
T     MB    15

// Data Detik (ms)
L     DB1.DBB    6
T     MB    16

// Data Detik ( 10s)
L     DB1.DBB    7
T     MB    17

– Monitor Data

Nilai MB13 yaitu 16 (dalam hex) menunjukkan jam 4 sore, jadi cukup menggunakan nilai MB13 ini sebagai triger untuk melakukan eksekusi yang lain sesuai kebutuhan .

31 thoughts on “Membaca Date & Time pada S7”

  1. good !!!
    tambain dikit donk tutor sinkronisasi dgn SCADA/HMI-nya mas, itu kan komponen pentingnya .. krn klo ngk salah nerjemahin tutor ini jam itu di set dr SCADA/HMI-nya kan? klo jam PC-HMI ngk sinkron bisa brabe tuh ..:)

  2. Jadi inget waktu itu nanya tentang aplikasi baca date & time ini. ^^ Terima kasih ya Mas Toni..waktu itu udah bantuin ngejelasin tentang ini ^^

  3. permisi mas, numpang nanya gimana caranya database yang dibuka lewat intouch jadi triger ke PLC ??
    terima kasih sebelumnya..
    ^_^

  4. salam kenal mas, saya pemula mengenai plc. gimana caranya troubleshooting untuk mengganti cpu dan i/o card pada plc s7-300 ya mas, langkah-langkahnya apa aja …..??
    terimakasih sebelumnya..

  5. @sugi : pertama upload semua programnya ke PG/PC, atau kalo punya source codenya tinggal compare dan edit jika ada perubahan, jangan lupa juga di copy status db online yang terakhir, setelah itu diganti cpunya, udah deh donlot, atau kalo ada epromnya tinggal epromnya aja di masukin ke cpu yang baru
    @eone : sial… 🙂

  6. diitung aja berapa pulse yang dihasilkan oleh rotary encoder dalam satu detik, terus tinggal dikali 60 🙂 biasanya ada modul counter khusus atau high speed digital imput, ada beberaa jenis encoder dan modul yang udah sangat presisi, jadi 1/4 putaran pun udah mendeteksi pulse, lupa saya istilahnya apa 🙂

  7. Ass, salam kenal,
    Mas, mohon bantuannya, kira kira bagaimana konsep sport correction, pada mesin packing, ada bagian pemotong yang digerakkan servo, dan ada bagian supplier kemasan ke bagian pemotong juga digerakkan servo, agar pemotongan tepat di titik yang sama, dan pjng kemasan bisa bervariasi. terimakasih sebelumnya, wassalam

  8. salam kenal balik mas,,,,,
    saya ga punya experience di packing machine
    cuma setau saya untuk servo system ada program untuk posisi axis (koordinatnya), untuk feedbacknya biasanya pake encoder

  9. pak fathoni,,saya mau tanya nih,,,kasusnya seperti ini,
    saya lagi bikin pengukuran suhu suatu ruangan, dan saya ingin menampilkan display nya di intouch…
    saya menggunakan s7200 cpu 224, dan kami punya module EM 235(analog input dan output),,
    pertanyaanya, apakah saya bisa langsung menghubungkan sensor suhu langsung ke EM 235, dan menyimpannya di dalam memori plc, apakah data dalam memori itu sudah berupa digital? dan saya bisa mengambil nya melalui opc server? gimana tuh pak, mohon pencerahannya,,bener gak pak kira2 ,,:( newbie bgt saya pak,,heee,,

  10. mas ravindra :

    – sensor suhu nya tipe termocouple atau rtd ?
    – module em235 hanya bisa mengambil nilai mA dan V, jadi butuh transmitter dari sensor suhu untuk merubah ke V dan mA sesuai range modulenya
    – maksudnya berupa digital itu 1 dan 0 ? 🙂 kalo analog yah data kontinue bukan diskrit 🙂 apa aja yg ada di PLC bisa diambil ke InTouch via OPC

  11. saya kurang ngerti pak, tipenya termocouple atau rtd.:( tapi saya bikin sensor suhu dari LM 35 di mana sensor itu nanti di kuatkan supaya bisa sesuai dengan range modulenya em 235, lm 35 itu menghasilkan 0.1 v/derajat C.
    iya pak, maksud saya digital itu pak, data nya berbentuk word, klo saya baca sih keterangannya em 235 mengkonversi data analog menjadi 12 bit,(bener ya pak ? 🙁 )
    terus pertanyaan saya satu lagi pak, apa em 235 itu fungsinya untuk mengkonversi analog to digtal?seperti fungsi sebuah konverter ADC 8 bit, 12 bit, dst…?
    sebelumnya trima kasih pencerahannya pak 🙂

  12. ya itu thermocouple, sebelum ke module EM235 harus bikin tranduser dulu yang convert ke tegangan 0-10 V atau 0-20 mA, setelah itu bisa tinggal bikin program SCALING di PLCnya

  13. pak fathoni,,maap lagi,,mo tanya lagi..heeee.
    sensornya sudah saya convert ke tegangan 0-10 v.
    saya masih bingung untuk melakuan scaling nya, yaitu saat menentukan nilai ISH(Input scale high) & ISL (Input Scale Low)saya menggunakan instruksi S_ITR (integer to real.
    dimana untuk nilai digital nya untuk modul em235 adalah 0 – 32000 , dan nilai itu merepresentasikan dari input 0-10 V(em 235 range) kan pak?

    saat ini yang saya ambil kesimpulannya adalah, untuk sensor LM 35D yang telah di tranduser menghasilkan output sebesar 0,1 v/derjat C .dan suhu yang akan diukur adalah 0-100 derjat,dimana 0 derjat menghasilkan 0v dan 100 derjat = 10v.maka perubahan satu digital melibatkan perubahan input analog sebesar 10/32000 atau sekitar 0.3125 mv. jadi klo saya ingin scale nilai digital minimal, pada suhu 20 derjat (0.1 x 20 = 2 V =2000 mV) maka untuk nilai ISL nya adalah 2000/0.3125= 6400 .
    dan nilai 6400 merepresentasikan nilai suhu sebesar 20 derjat.
    apa itu benar pak ? mohon pencerahannya 🙁

  14. betul mas, gampangnya pake rumus regresi linear : y-y1/y2-y1 = x-x1/x2-x1 dimana ;
    y : nilai suhu yang kita cari (deg C)
    y1 : 0 (batas bawah suhu)
    y2 : 100 (batas atas suhu)
    x : nilai dari sensor (0-32000)
    x2 : 32000
    x1 : 0

  15. pak thoni. kenapa yah pak.
    saya bikin prgram untuk monitor waktu lamanya proses berjalan.
    dan saya bikin pulse 1 second untuk triger add 1 nilai integer ke db . pake clock memory M2.0 (10 Hz)
    tapi kok nilainya ga stabil gitu yah pak loncat2 . di db nya saya monitor ga sesuai perubahannya dgn trigger 1 S.
    dari 1 jadi ke 4, trus ke 9..dst mohon pencerahannya.

  16. Wah aq pnh nyoba pake clock memory,kasusnya sama nggak stabil.. hehe..

    skalian numpak nanya pak giman cara dapetin tigger date & time diatas,kan bentuk’nya Hexa.sementara convert&compare untuk hexa nggak ada?
    mohon pencerahannya pak..

  17. -Maksud’nya di pulse dikasih (P) ya pak? saya coba msh blm bisa.. Tp saya cobanya pake PLCsim pak..

    -Untuk yang Simatic Manager pak,spt diatas.saya bingung cara bikin trigger’nya?

    -Kalo di S7-1200 gmn cara membagi Date time nya pak,itu kan jd satu,nggak dibagi per byte..

    Maaf banyak nanya pak..

  18. Email’nya apa pak?

    Untuk clock memory skg saya taruh di OB32 stabil pak,tp nggak tau itu bnr pa nggak aplikasinya.. hehe..

    Mohon koreksinya..

Leave a Comment

Your email address will not be published. Required fields are marked *