The RF-DFS is a movable 3-meter dish antenna with azimuth and elevation drivers to locate the source of RF interference. This project combines the function of the DFS with the RF - Environmental Monitoring System; a similar utility that is built off of an effectively isotropic antenna. Both RF chains are connected to a Keysight N9040B Spectrum Analyzer and are controlled by a Python GUI.
Hardware: Automation Direct P1AM-100 PLC with 15-point discrete output module, Parker Hannifin ACR9000 Motion Controller, 2 Aries AR-04AE Servo Drives, Keysight N9040B Spectrum Analyzer, and a Windows computer.
graph BT
subgraph Hardware
P1AM
win[Windows Machine]
ACR9000
AR-04AE
N9040B
end
subgraph Firmware
C++
AcroBASIC
SCPI
end
subgraph client[Edge Client]
Python([Python Front End])
end
subgraph Back End
Database[(PostgreSQL<br>Database)]
Server([Python Server])
end
C++ -->|Serial| Python
AcroBASIC -->|Serial| Python
SCPI -->|GPIB/LAN| Python
P1AM --> C++
win --> Python
ACR9000 & AR-04AE --> AcroBASIC
N9040B --> SCPI
client --> Database
Database <--> Server
- NI-VISA or other suitable PyVISA backend.
- NI-488.2
- Ethernet, GPIB, serial, or other SCPI instrument connection.
- All above requirements.
- Python 3.6+
- Suitable Python IDE (Recommended VSCode)
- Python packager (Recommended PyInstaller)
- PlatformIO for updating PLC firmware.
Note
Freezing tools (Such as PyInstaller) package the entire Python Interpreter and installed libraries which generates large executables and could be flagged as a virus. It is recommended to create a virtual environment and only install/package the libraries used in the program. These executables will also only work on the OS that built them (A Windows deployment must be built on a Windows computer).
pip install pyserial
pip install pyvisa