做了一个上位机桌面应用实现plc数据的连续读写功能,分享给大家
python与1200plc的线程通讯
我用的IED软件PyCharm,Python版本号为3.13,PLC是1214 AC/DC/RLY
plc写了两个3个DB块:一个是对10个Q点的改写(DB10);一个是发送数据块(DB101)上位机通过线程每隔1秒自动读取DB块数据;一个是接收数据块(DB100)上位机向PLC写入数据;
第一步为项目安装pyside6和python-snap7的包
第二步在Python的安装目录下找到 designer.exe,双击打开,前期画面的制作
路径:D:\Python313\Lib\site-packages\PySide6
QT Designer控件拖拽,
第四步,将QT Designer生成的UI文件转成py文件格式,(我的代码直接引用UI文件,所以不需要转换),转的话有个好处就是编程过程中有控件代码提示;
怎么转换,以我S7_1.ui为例
在终端下输入:pyside6-uic S7_1.ui -o S7_1.py 按回车
右键刷新下,.py文件就出来了
注意对应UI文件一定要在终端目录下
第五步,Python程序
1.首先引入功能块
2.创建窗体,加载UI文件,初始化线程(线程等线程块写完后再来处理)
3.编写连接和读写功能块
下面是连接功能块
下面是断开功能块
下面是分别是读取DB块bool,int,real,string类型的功能块
4.对各个功能块的吊用
5.调用线程,没个1秒读一次数据