Ascon XT 31/95 dengan Weintek HMI

 Tugas menyebabkan harus menggunakan ascon XT 31/95 yang kuno dan menghubungkan dengan Weintek MT8051IP.

Untuk komunikasi, ascon xt 31/95 hanya menggunakan Ascon Protocol Gamma Uno. Dimana ascii character dikirimkan. Berbekal googling didapatkan beberapa material dibawah ini yang membantu yaitu:

1.       ALS-en book

Berisi panduan ASCON APALS 3/232

2.       Ascon Serial communications protocol Supplement manual, JM/JT, MF/MC, MS, XE,XF, XS/XP Series.

Berisi panduan ascii protocol

Banyak lagi manual yang didapatkan, tapi hanya kedua pdf diatas yang membantu. Tidak adanya contoh contoh aplikasi menggunakan HMI menyebabkan kesulitan.

Baiklah kita melihat kemampuan Weintek HMI, dimana tersedia Free Protocol.

Untuk itu awal adalah setting koneksi yaitu:

Pada ASCON XT 31/95 secara manual:

Baud rate : 9600, parity None

Pada Weintek menggunakan Free Protocol dengan baud rate 4800 (boleh test 9600), parity None, stop bits 1

Barulah dilakukan koneksi pada Ascon XT 31/95 dengan APALS/3/232:

Untuk koneksi RS232 menggunakan terminal 7(RX), 6(TX) dan 3(SG) menuju Weintek.

Oh iya selain panduan diatas, saya gunakan juga ASCON_XS_EN_MANUAL pdf, dimana terdapat kemiripan. Hanya XT 31/95 tidak memiliki modbus protocol.

Lain lain panduan bisa di googling, palagi yang menggunakan programming Basic, Fortran, C dll.

Karena tuk memudahkan, saya gunakan Weintek HMI dengan Free Protocol.

Macro yang saya buat adalah spt dibawah ini:

// Free Protocol ASCII for Ascon

// Read main display

macro_command main()

unsigned char command[10], response[10]

short return_value, c

FILL(command[0], 0, 10)//  init

FILL(response[0], 0, 10)

 

command[0] = 0x42 //  station no 1

command[1] = '?' //  read coils

command[2] = 'X' //  command

command[3] = ' '  //  command

command[4] = ' '  //  command

command[5] = 0x0D //  Carriage Return

 

OUTPORT(command[0], "MODBUS RTU Device", 6) //  send command asking Display Data Ascon

 

INPORT(response[0], "MODBUS RTU Device", 5, return_value) //  read response

 

SetData(response[0], "Local HMI", LW, 15, 4) //  send response to LW 15 temporary

ASCII2HEX (response[0], c, 4) //convert ASCII response to HEX

SetData(c, "Local HMI", LW, 25, 1)//  send response to LW 25 for later display on HMI

 

end macro_command

 

sedangkan untuk menulis setting temperature adalah:

 

// Free Protocol ASCII Ascon Write Coils

// Untuk menulis setting temperature

 

macro_command main()

 

unsigned char command[10], response[10]

short return_value, b

FILL(command[0], 0, 10)//  init

FILL(response[0], 0, 10)

 

command[0] = 0x42 //  station no 1

command[1] = '!' //  read coils 3F=?=ask 21=!=write

command[2] = 'W' //  command

command[3] = 'L'  //  command

command[4] = ' '   //  command

 

// get one word from LW2 to the variable b

GetData(b, "Local HMI", LW, 28, 1) // get word dari LW 28

HEX2ASCII (b, command[5], 4) // convert word HEX into ASCII, put in command[5] to command[8]

 

command[9] = 0x0D // end with Carriage Return

 

OUTPORT(command[0], "MODBUS RTU Device", 10) //  send command

 

INPORT(response[0], "MODBUS RTU Device", 5, return_value) //  read response

 

SetData(response[0], "Local HMI", LW, 35, 4) //  send response to LW 35, if needed

 

end macro_command

 

satu lagi macro yang saya buat adalah :

 

// Free Protocol ASCII for Ascon

// Membaca setelan target temperature

 

macro_command main()

 

unsigned char command[10], response[10]

short return_value, c

FILL(command[0], 0, 10)//  init

FILL(response[0], 0, 10)

 

command[0] = 0x42 //  station no

command[1] = '?' //  read coils

command[2] = 'W' //  command

command[3] = ' ' //  command

command[4] = ' '//  command

command[5] = 0x0D//  CR

 

OUTPORT(command[0], "MODBUS RTU Device", 6)//  send command

 

INPORT(response[0], "MODBUS RTU Device", 5, return_value)//  read response

 

SetData(response[0], "Local HMI", LW, 45, 4)//  send response to LW

ASCII2HEX (response[0], c, 4)

SetData(c, "Local HMI", LW, 55, 1)//  send response to LW

 

end macro_command

 

Dengan ketekunan, googling, dan belajar akhirnya dapat melakukan komunikasi antara Weintek HMI dengan APALS/3/232 dan diteruskan ke ASCON XT 31/95

 




 Dapat dilihat screenshoot diatas, address 1 hingga 3. Data diisi/diubah dan response maupun temperature muncul dilayar HMI.

oh iya, nama tertulis modbus rtu device, yang sebenarnya adalah Free Protocol tuk komunikasi. Nama boleh aja diganti jadi apapun yg memudahkan. Asalkan pada macro tertulis nama yang sama persis.

dibawah ini konversi ascii vs hex


Komentar