# streamlit_plc **Repository Path**: wangletian1980/streamlit_plc ## Basic Information - **Project Name**: streamlit_plc - **Description**: 使用python的streamlit库,开发一个web页面,可以控制西门子的S7- 300 S7-1200 S7-1500的PLC。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-08 - **Last Updated**: 2024-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: streamlit, streamlit, plc, 1500, 西门子 ## README # streamlit_plc ### 介绍 使用python的streamlit库,开发一个web页面,可以控制西门子的S7- 300 S7-1200 S7-1500的PLC。 ### 软件架构 全部采用python编写,包含打包使用的一些文件,如果不打包,直接使用WEB形式,hook和streamlit文件夹可以删除,run_app.py也可以删除,只保留主程序app.py和你增加的其它程序即可。 ### 安装教程 1. 安装python3.7以上版本. 2. 安装python的第三方库,streamlit,python-snap7 pip install steamlit pip install python-snap7 3. 如果要打包成执行文件,需要安装pyinstaller. pip install pyinstaller ### 使用说明 1. 主要使用方法 git clone本项目到本地,进入项目目录 运行命令: ```cd streamlit``` 运行命令: ```streamlit run app.py``` 根据显示的信息,访问本地WEB的端口,即可查看应用程序。例如: 这里是列表文本 You can now view your Streamlit app in your browser. Local URL: http://localhost:8501 Network URL: http://192.168.1.20:8501 一般运行后自动打开这个网页,也可以复制上面地址,在浏览器打开。 2. 注意事项 PLC的连接信息需要自己在程序中修改,否则连接不上PLC。 ### 打包方法 如果你想生成一个可执行文件运行,那么需要对整个项目进行打包,可以采用如下方法克隆项目文件到本地,进入目录:cd stremlit_plc 在工作目录运行命令:(注意程序名字run_app.py改了,这里要改名字) ``` pyinstaller --onefile --additional-hooks-dir=./hooks run_app.py --clean ``` 这将生成 2个文件夹build、dist,还有run_app.spec文件。run_app.spec如下所示: run_app.spec ``` # -*- mode: python ; coding: utf-8 -*- a = Analysis( ['run_app.py'], pathex=[], binaries=[], datas=[], hiddenimports=[], hookspath=['./hooks'], hooksconfig={}, runtime_hooks=[], excludes=[], noarchive=False, ) pyz = PYZ(a.pure) exe = EXE( pyz, a.scripts, a.binaries, a.datas, [], name='run_app', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=True, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, ) ``` **修改后二次打包** **删除第一次打包生成的dist和build两个文件夹** **对此run_app.spec文件进行相应编辑,指向streamlit库安装位置。** **(注意stream包的安装位置按照实际你的安装位置写)** **(注意修改datas= [] 改为,datas=datas)** ``` # -*- mode: python ; coding: utf-8 -*- # 增加下面 from PyInstaller.utils.hooks import collect_data_files from PyInstaller.utils.hooks import copy_metadata # 解释datas = [("你的streamlit安装位置/streamlit/runtime","./streamlit/runtime")]注意路径斜杠,我这里是mincoda3的虚拟环境,你要根据实际位置更改。 datas = [("D:/ProgramData/Miniconda3/envs/test/Lib/site-packages/streamlit/runtime","./streamlit/runtime")] datas += collect_data_files("streamlit") datas += copy_metadata("streamlit") block_cipher = None # 修改下面,datas=datas a = Analysis( ['run_app.py'], pathex=[], binaries=[], datas=datas, hiddenimports=[], hookspath=['./hooks'], hooksconfig={}, runtime_hooks=[], excludes=[], noarchive=False, ) pyz = PYZ(a.pure) exe = EXE( pyz, a.scripts, a.binaries, a.datas, [], name='run_app', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=True, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, ) ``` **在工作目录再次执行 PyInstaller 命令以合并上述更改:** 命令: ``` pyinstaller run_app.spec --clean ``` 然后会在dist文件夹下面,生成的run_app.exe文件,这时候运行会报错,提示找不到文件 **拷贝主程序app.py到dist目录下** 咱们就只需要将前面的app.py文件复制到这个文件夹下面,就可以正常运行了。 点击exe文件运行即可,出现下面这个页面就是成功了 注意:app.py run_app.py 的名字都可以根据你的情况更改,但是要注意在相关文件中修改调用名字。 要注意pyinstaller与streamlit的版本匹配。