1

Konu: PLC den bilgi alma

PLC ile yazılmış bir makinedeki bilgileri comporttan almak istiyoruz. Bu konu ile ilgili tecrübesi olan arkadaşlardan yardım bekliyorum. Şimdiden Teşekkürler.

2

Re: PLC den bilgi alma

Ne tür bir yardıma ihtiyacınız var ? Belki çözmüşsünüzdür problemlerinizi. Ama hala devam ediyorsa yardımcı olabilirim.

Tekin Başöz
Yapay Zeka Ltd.

3

Re: PLC den bilgi alma

Tekin bey,
PCl ile programlanmış bir tekstil makinesinin RS 232 çıkışı var. Bu çıkıştan bilgileri bilgisayara aktarıp foxpro 9.0 ile rapor oluşturmak istiyoruz.

4 Son düzenleyen, Mehmet K (08.01.2010 18:07:09)

Re: PLC den bilgi alma

mscomm32.ocx

yarım yamalak bir örnek ekledim, umarım yardımcı olur:

Visual Fox Pro
PROCEDURE openport

  THIS.ole1.InBufferCount = 0
  THIS.ole1.DTREnable   = FALSE
  THIS.ole1.RTSEnable   = FALSE
  IF !THIS.ole1.PortOpen
    THIS.ole1.PortOpen  = TRUE
  ENDIF
ENDPROC
 
PROCEDURE closeport
  IF THIS.ole1.PortOpen
    THIS.ole1.PortOpen  = FALSE
  ENDIF
ENDPROC
 
PROCEDURE initport
        LPARAMETERS nBaudrate, nComPort
        LOCAL cTxt
 
        DO CASE
          CASE nBaudrate == 2400
            cTxt = "2400,N,8,1"
          CASE nBaudrate == 4800
            cTxt = "4800,N,8,1"
          CASE nBaudrate == 9600
            cTxt = "9600,N,8,1"
          CASE nBaudrate == 19200
            cTxt = "19200,N,8,1"
          CASE nBaudrate == 38400
            cTxt = "38400,N,8,1"
          CASE nBaudrate == 57600
            cTxt = "57600,N,8,1"
          OTHERWISE
            MESSAGEBOX("Baudrate out of range!")
            RETURN FALSE
        ENDCASE
 
        THIS.ole1.Settings         = cTxt
        THIS.ole1.CommPort      = nComPort
        THIS.ole1.Handshaking    = 0
        THIS.ole1.InputLen       = 1
        THIS.ole1.RThreshold     = 0
        THIS.ole1.NullDiscard   = FALSE
        This.ole1.InBufferSize  = 16384
ENDPROC
 
PROCEDURE send_msgblock
        LOCAL nCrcValue
        DECLARE integer Sleep in Win32API integer
 
        *!*    THIS.crc_xmodem(THIS.TxD_Buffer)
 
        nCrcValue = VAL(SYS(2007,THIS.TxD_Buffer))
        THIS.Crc_LowByte  = INT(nCrcValue % 256)
        THIS.Crc_HighByte = INT(nCrcValue / 256)
 
        THIS.TxD_Buffer  = THIS.TxD_Buffer + CHR(THIS.Crc_LowByte) + CHR(THIS.Crc_HighByte) + CHR(0x03)
        THIS.ole1.OUTPUT = THIS.TxD_Buffer
 
        DO WHILE  THIS.ole1.OutBufferCount > 0
          Sleep(10)
        ENDDO
 
        WAIT CLEAR
ENDPROC
Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.