2017-05-02 10 views
1

로컬 네트워크 내의 원격 시스템에서 시뮬레이트 된 pymodbus 비동기 서버와 통신하는 VOLTTRON에 MasterDriverAgent를 구현하려고합니다. VOLTTRON 로그에서 에이전트가 modbus.py 인터페이스 클래스를 호출하지 않는 것처럼 보입니다. 버스의 마지막 메시지는 확장 성 테스트와 관련이 있으며 침묵합니다. 각 간격 긁어에서 그 다음 'context':NoneMasterDriverAgent.agent가 modbus 인터페이스 클래스를 호출하지 않음

나는 scripts/update_master_driver_config.py 스크립트로 설정을 업데이트하지만 여전히 이전 스타일의 구성이 지원되지 않는 것에 대해 로그에 해당 메시지를 얻을 수있는 하트 비트를 표시합니다.

여기 내 master_driver.agent 설정 파일입니다 :

{ 
    "agentid": "master_driver", 
    "driver_config_list": [ 
          "/home/volttron/volttron/services/core/MasterDriverAgent/master_driver/test_modbus_plant1.config", 
          "/home/volttron/volttron/services/core/MasterDriverAgent/master_driver/test_modbus_rt_ctrl_blk1.config" 
          ] 
} 

내 장치 설정 파일 :

{ 
    "driver_config": {"device_address": "10.0.1.19", 
       "port": 1060, 
       "slave_id": 0}, 
    "plant": "plant1", 
    "unit": "device1", 
    "driver_type": "modbus", 
    "registry_config":"/home/volttron/volttron/volttron/drivers/plant1.csv", 
    "interval": 30, 
    "timezone": "UTC", 
    "heart_beat_point": "ESMMode" 
} 

나는 또한 장치의 설정 파일에 지정된 위치의 레지스트리 설정 파일이 있습니다.

다음은 디버그 모드의 VOLTTRON 로그 출력입니다 (리스너 에이전트 하트 비트 제외). 내가 여기에 드라이버 프레임 워크의 큰 부분을 놓치고 그러나 지금 잠시 동안 벽을 타격 한 것처럼

2017-05-01 21:57:51,830 (master_driveragent-3.1.1 9513) master_driver.agent WARNING: Master driver configured with old setting. This is no longer supported. 
2017-05-01 21:57:51,831 (master_driveragent-3.1.1 9513) master_driver.agent WARNING: Use the script "scripts/update_master_driver_config.py" to convert the configuration. 
2017-05-01 21:57:51,832 (master_driveragent-3.1.1 9513) volttron.platform.vip.agent.core DEBUG: address: ipc://@/home/volttron/.volttron/run/vip.socket 
2017-05-01 21:57:51,833 (master_driveragent-3.1.1 9513) volttron.platform.vip.agent.core DEBUG: identity: platform.driver 
2017-05-01 21:57:51,833 (master_driveragent-3.1.1 9513) volttron.platform.vip.agent.core DEBUG: agent_uuid: 12fb6f87-ec81-48be-819b-57d9e7a41bd6 
2017-05-01 21:57:51,834 (master_driveragent-3.1.1 9513) volttron.platform.vip.agent.core DEBUG: severkey: None 
2017-05-01 21:57:51,851() volttron.platform.auth INFO: authentication success: domain='vip', address='localhost:1000:1000:9513', mechanism='CURVE', credentials=['e1xxY8-YkuA1t46q2Vlmvw8gjuQcegB6fypwB4XeX24'], user_id='platform.driver' 
2017-05-01 21:57:51,857 (master_driveragent-3.1.1 9513) volttron.platform.vip.agent.core INFO: Connected to platform: router: 404e0ff7-6f6b-4913-a368-ac995444f1bd version: 1.0 identity: platform.driver 
2017-05-01 21:57:51,858 (master_driveragent-3.1.1 9513) volttron.platform.vip.agent.core DEBUG: Running onstart methods. 
2017-05-01 21:57:51,865 (listeneragent-3.2 9483) listener.agent DEBUG: Peer: 'pubsub', Sender: 'platform.driver':, Bus: u'', Topic: 'heartbeat/MasterDriverAgent/12fb6f87-ec81-48be-819b-57d9e7a41bd6', Headers: {'Date': '2017-05-02T04:57:51.859139+00:00', 'max_compatible_version': u'', 'min_compatible_version': '3.0'}, Message: {'status': 'GOOD', 'last_updated': '2017-05-02T04:57:51.835134+00:00', 'context': None} 
2017-05-01 21:57:51,871 (master_driveragent-3.1.1 9513) volttron.platform.vip.agent.subsystems.configstore DEBUG: Processing callbacks for affected files: {'config': 'NEW'} 
2017-05-01 21:57:51,871 (master_driveragent-3.1.1 9513) master_driver.agent INFO: maximum concurrently open sockets limited to 3276 (derived from system limits) 
2017-05-01 21:57:51,871 (master_driveragent-3.1.1 9513) master_driver.agent INFO: maximum concurrent driver publishes limited to 10000 
. 
. 
. 
2017-05-01 16:30:25,489 (listeneragent-3.2 7710) listener.agent DEBUG: Peer: 'pubsub', Sender: 'platform.driver':, Bus: u'', Topic: 'heartbeat/MasterDriverAgent/5cfc8abc-6e7d-42be-b7c1-d234bb3ea05f', Headers: {'Date': '2017-05-01T23:30:25.486351+00:00', 'max_compatible_version': u'', 'min_compatible_version': '3.0'}, Message: {'status': 'GOOD', 'last_updated': '2017-05-01T23:29:25.464609+00:00', 'context': None} 

는 느낌. 보통 로그의 오류 메시지에서 문제가 어디인지 알 수 있지만이 경우에는 아무 것도 제공되지 않습니다.

기본 TCP 서버/클라이언트 스크립트를 사용하고 pymodbus 예제 비동기 서버/클라이언트 스크립트를 사용하여 두 대의 컴퓨터간에 통신 할 수 있습니다 (비록 내가 Unhanded error in Deferred이 되긴하지만, 나는 통신이 일어나고 있다고 생각합니다. 두 기기의 출력 .MasterDriverAgent에서는 그렇지 않습니다.)

내 다음 단계는 기본 테스트 에이전트를 구현하고 간단한 pymodbus 클라이언트를 그 안에 배치하고 어떤 통신을 할 수 있는지 확인하는 것입니다. 아니면 VOLTTRON 내에 MasterDriverAgent와 대화하고 버스에 게시하기 위해 테스트 한 시뮬레이션 장치가 있습니까? 나는 이것이 내가 문제를 격리 시키는데 도움이 될 것이라고 생각한다. 내 문제가 너무 애매한 경우 사과 드리며 최대한 구체적인 노력을 기울였습니다.

이 문제에 관해 밝히는 데 도움을 주시면 감사하겠습니다.

답변

0

지원되지 않는 이전 스타일 구성에 대한 로그 메시지는 MasterDriver로 패키징하는 구성의 로그 메시지입니다. 구성에 driver_config_list 항목이 있으면 구성 목록이 더 이상로드되지 않는다는 경고를 보냅니다.

새 구성 스타일의 경우 MasterDriver를 설치할 때 MasterDriver를 완전히 비워야합니다. 나는 또한 당신이 구성을 떠날 수 있다고 생각하고 그것은 똑같은 일을 할 것입니다.

누락 된 단계는 변환 된 구성을 플랫폼 구성 저장소에로드해야한다는 것입니다. update_master_driver_config.py의 출력 디렉토리는 install_master_driver_configs.py의 입력으로 사용될 수 있습니다.

http://volttron.readthedocs.io/en/develop/core_services/drivers/Driver-Configuration.html#converting-old-style-configuration

http://volttron.readthedocs.io/en/develop/core_services/drivers/Driver-Configuration.html#adding-device-configurations-to-the-configuration-store