본문 바로가기
FMS

FMS[2] (Facilty Management System) RS-485

by jongSuN 2021. 9. 28.

RS-485

IDC 센터에서 근무하며 온습도계, 항온항습기, 정류기 등의 설비추가를 통해 배운 지식을 바탕으로 작성하였습니다.

import ConfigParser
from pymodbus.client.sync import ModbusSerialClient as ModbusClient
import socket
import time

class temperature
  def __init__(self):
    self.__main_ser_ip__ = ""
    self.__main_ser_port_ = ""
    self.__sub_ser_ip__ = ""
    self.__sub_ser_port__ = ""
    self.__server_id__ = ""
    self.__dev_type__ = ""
    self.__floor__ = ""
    self.__device_num__ = {"1":1, "2":2, "3",3, "4":4, "5":5,
    "6":6, "7":7, "8":8, "9":9, "10":10, "11":11, "12":12, "13",13, "14":14, "15":15, "16":16}
    self.parser_config()
    self.mount()
    
  #  config.ini file 불러오기
  def parser_config(self):
    config=ConfigParser.ConfigParser()
    config.read('config.ini')
  
    self.__main_ser_ip = str(config.get('SERVER1', 'ip'))
    self.__main_ser_port = str(config.get('SERVER1', 'port'))
    self.__sub_ser_ip = str(config.get('SERVER2', 'ip'))
    self.__sub_ser_port = str(config.get('SERVER2', 'port'))
  
    self.__server_id__ = int(config.get('DEV_INFO', 'server_id'))
    self.__dev_type__ = int(config.get('DEV_INFO', 'dev_type'))
    self.__floor__ = int(config.get('DEV_INFO', 'floor'))
  
  # mount 인식하여 connection 
  def monut(self):
    self.__client__ = ModbusClient
    self.__client__.connect()
    
  # mount connection으로 해당 장치에서 데이터 return 
  def process(self, client, dev_num):
    rr = client.read_input_registers(0, 2, unit=int(dev_num))
    if not rr.isError():
      temp = rr.registers[0]
      humi = rr.registers[1]
      data = {"server_id" : self.__server_id__, "dev_type": self.__dev_type__, "dev_num": fms_num, "temp": temp, "humi": humi, "link": 1, "floor": self.__floor__}
      return data
    
    ... 생략 ...

 

위의 코드는 온습도계 세팅 및 연결 코드입니다.

 

 

'FMS' 카테고리의 다른 글

FMS[1] (Facilty Management System)  (0) 2021.09.28

댓글