Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Domotique : module de commutation - 8 interrupteurs Mar 25 Mai 2021 - 22:59 | |
| Bonsoir à tous ! Ce module permet de commander, par l'intermédiaire de huit interrupteurs, les huit relais du circuit électronique N4D8B08 utilisé > ici <. Ce source est une démonstration fonctionnelle de ce que l'on peut aisément et rapidement mettre en oeuvre avec Panoramic. - Code:
-
' platine de commutation 8 interrupteurs ' rs485 Modbus RTU ' commande des huits relais sur carte éléctronique N4D8B08 ' source de démonstration ' Marc - mai 2021
dim n%, inter%, portCom% label action, redim0, quitter
portCom% = 8
width 0,690 height 0,180 on_resize 0,redim0 on_close 0,quitter
' dessiner les interrupteurs for n% = 1 to 8 switch1 n% width n%,50 top n%,40 left n%,70 * n% caption n%,str$(n%)+": Off|"+str$(n%)+": On" on_click n%, action next n%
' vérification si le portCom% existe if serial_port_exists(portCom%) = 0 message "Le port COM" + str$(portCom%) + " n'est pas accessible." terminate end_if
' creer un canal de communication série serial 10 serial_port 10,portCom% serial_baudrate 10,9600 serial_databits 10,8 serial_parity 10,0 serial_stopbits 10,1 serial_open 10
end
action: inter% = number_click commutation() return sub commutation() select inter% case 1 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(1)+chr$(1)+chr$(0)+chr$(217)+chr$(154) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(1)+chr$(2)+chr$(0)+chr$(217)+chr$(106) end_if case 2 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(2)+chr$(1)+chr$(0)+chr$(41)+chr$(154) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(2)+chr$(2)+chr$(0)+chr$(41)+chr$(106) end_if case 3 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(3)+chr$(1)+chr$(0)+chr$(120)+chr$(90) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(3)+chr$(2)+chr$(0)+chr$(120)+chr$(170) end_if case 4 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(4)+chr$(1)+chr$(0)+chr$(201)+chr$(155) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(4)+chr$(2)+chr$(0)+chr$(201)+chr$(107) end_if case 5 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(5)+chr$(1)+chr$(0)+chr$(152)+chr$(91) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(5)+chr$(2)+chr$(0)+chr$(152)+chr$(171) end_if case 6 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(6)+chr$(1)+chr$(0)+chr$(104)+chr$(91) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(6)+chr$(2)+chr$(0)+chr$(104)+chr$(171) end_if case 7 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(7)+chr$(1)+chr$(0)+chr$(57)+chr$(155) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(7)+chr$(2)+chr$(0)+chr$(57)+chr$(107) end_if
case 8 if checked(inter%) = 0 serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(8)+chr$(1)+chr$(0)+chr$(9)+chr$(152) else serial_write 10,chr$(1)+chr$(6)+chr$(0)+chr$(8)+chr$(2)+chr$(0)+chr$(9)+chr$(104) end_if
end_select end_sub
redim0: width 0,690 height 0,180 return
quitter: serial_close 10 return | |
|