2014-02-07 8 views
0

다른 CSV가 아닌 입력을 제공하여 CSV 파일을 만들 수 있음을 알아야합니다. 필자에게 인쇄 출력을 제공하는 plc의 데이터 메모리를 읽을 수있는 파이썬 스크립트가 있습니다. 는 나는 다음과 같이 입력을 제공하여 CSV 파일을 만들 수 있는지 알고 있어야합니다읽기에서 CSV 파일 만들기 def main()의 데이터

PLC에에서 데이터 메모리를 읽을 스크립트의 조각을의
def main(): 
     plc = OmronPLC() 
     print plc.openFins('ip_address', port) 
     print plc.readMemC('D2000', 2) 
     print plc.readMemC('D2005', 5) 
     plc.close () 

    if __name__ == "__main__": 
     main() 

    import csv 
    with open ('test.csv', 'w') as fp: 
     a = csv.writer(fp, delimiter=',') 
     data = [ main() ] 
     a.writerows(data) 

. 때 발사 나에게 출력 데이터를 제공하는 모니터에서이 스크립트하지만 시도는 CSV는 CSV 파일에서 출력 파일 생성 할 때하는 PLC로부터 ""

가 나는 시도, 숫자로 표현 된 데이터 메모리의 값을 읽을 수있다

12, 3 
25, 54 
44, 555 

스크립트 인쇄 값을 모니터링하는 출력은 다음과 같이이다 :이 같은 CSV를 만드는

[12, 3,] 
[12, 4, 54, 44, 555] 

어떻게 그 정의에서 입력 데이터를 가질 수 있습니까?

답변

0

작성한대로 main() 함수는 CSV 파일에 기록 할 값 목록을 반환해야합니다. 예 :

def main(): 
    plc = OmronPLC() 
    ip = plc.openFins('ip_address', port) 
    d2000 = plc.readMemC('D2000', 2) 
    d2005 = plc.readMemC('D2005', 5) 
    plc.close () 
    print ip, d2000, d2005 
    return [ip, d2000, d2005] 
+0

지원해 주셔서 감사합니다. 또 다른 질문, 어떻게 내가 2 행에 넣을 수 : 12,35 아래로 25,36 아래로 다시. – user3283077

+0

세 개의 변수를 별도의 행에 넣으려면'data = [main()]'을'data = main()'으로 변경하십시오 – arocks

+0

고마워, 정말 고마워! – user3283077