Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

CCS C MODBUS

Başlatan ilker07, 24 Eylül 2021, 12:08:44

ilker07

Arkadaşlar iyi günler ccs c ile modbus örneği yapan var mıdır?Ccs in kendi modbus kütüphanesi kullanarak 2 pici haberleştirdim ama tek pic ile aynı kodu kullanarak modbus kullanan bir sensörü haberleştiremedim sıkıntı nedir acaba?Ayrıca pici slave ayarlayıp Modbus poll programından okuma da yapamadım.Sebebi ne olabilir?


Pic Master-Sensör haberleşme Kodu:
#include <18F67K22.h>
#use delay(internal=8000000)
#FUSES NOWDT                   
#FUSES WDT128                 
#FUSES NOXINST                 
#FUSES NOBROWNOUT             
#FUSES PROTECT
#pragma use rs232(baud=9600, xmit=PIN_G1, rcv=PIN_G2, stream=diger, errors)
#define MODBUS_TYPE MODBUS_TYPE_MASTER
#define MODBUS_SERIAL_TYPE MODBUS_RTU   
#define MODBUS_SERIAL_RX_BUFFER_SIZE 64
#define MODBUS_SERIAL_BAUD 9600
#define MODBUS_SERIAL_INT_SOURCE MODBUS_INT_RDA
#define MODBUS_SERIAL_TX_PIN PIN_C6  // Data transmit pin
#define MODBUS_SERIAL_RX_PIN PIN_C7  // Data receive pin
#define MODBUS_SERIAL_ENABLE_PIN  PIN_C5  //  DE pin for RS485
#define MODBUS_SERIAL_RX_ENABLE    0  //  RE pin for RS485
#include <modbus.c>
void main()
{
 
 
  modbus_init();
 
 
 
    while(TRUE)
    {
     
     
   
   
   
     
      if(!(modbus_read_holding_registers(0x01,2,1))) 
      {
       
       
       
        unsigned int8 veri0,veri1,veri2,veri3,veri4,veri5,veri6,veri7;
        veri0=modbus_rx.data
[li];[/li]
        veri1=modbus_rx.data[1]; 
        veri2=modbus_rx.data[2]; 
        veri3=modbus_rx.data[3]; 
        veri4=modbus_rx.data[4]; 
        veri5=modbus_rx.data[5]; 
        veri6=modbus_rx.data[6];
        veri7=modbus_rx.data[7]; 
        fprintf(diger,"%lu %lu %lu %lu %lu %lu %lu %lu\n",(unsigned int16)veri0,(unsigned int16)veri1,(unsigned int16)veri2,(unsigned int16)veri3,(unsigned int16)veri4,(unsigned int16)veri5,(unsigned int16)veri6,(unsigned int16)veri7);
       
       
      delay_ms(100);
      }
     
      else{
        fprintf(diger,"Cevap yok!!!\n");
        delay_ms(1000);
      }
     
     
     
     
       
    }
       
     
}

necati

çalışan bir örnek varmıdır
[email]entegreterbiyecisi@yahoo.com[/email]

132kHz

iletişimin hızı tutmuyor olabilir cihaz id si tutmuyor olabilir

triyak

Slave adresini tanımlamamışsınız sanırım

necati

https://github.com/worrajak/PICmodbus

buna bakabilirmisiniz
derleyip duzenleyebilirmisiniz
[email]entegreterbiyecisi@yahoo.com[/email]

mustafa_firat

Abi çok teşekkür ederim paylaştığın döküman için böyle dökümanları bulmak çok zor kimse paylaşmıyor sana teşekkür etmek için form'a üye oldum, picprojeyede ayrıca teşekkürler.