如果没有接触过ST或其他文本编程可以先去B站了解一下。下文是我疫情隔离手边只有FX3UPLC 编写其ST框架的简单介绍

一,程序框架的编写:

创建设备状态的结构体如下:

python 三菱mc 三菱程序怎么写_功能块


设备输入的结构体如下:

python 三菱mc 三菱程序怎么写_PLC_02


设备输出结构体如下:

python 三菱mc 三菱程序怎么写_功能块_03


编写设备状态切换的FB功能块;功能块输入输出如下:

python 三菱mc 三菱程序怎么写_python 三菱mc_04


设备状态切换部分代码如下:

python 三菱mc 三菱程序怎么写_python 三菱mc_05

python 三菱mc 三菱程序怎么写_PLC_06


该功能块实现设备的状态切换,生产流程控制,及报警处理。其报警分为普通报警及重大报警。报警地址通过输入的M起始地址及长度,在FB内使用FOR循环及变址处理。

二,输入量的处理:

由于设备流程控制中,经常需要针对某些流程增加感应延时或未感应延时,及报警操作。所以编写一个输入功能块,使其每个输入量都有自己的ON OFF 延时滤波,及报警输出。以达到简化流程的目的。

输入结构体如下:

python 三菱mc 三菱程序怎么写_数组_07


python 三菱mc 三菱程序怎么写_ST_08


创建功能块,输入输出如下:

python 三菱mc 三菱程序怎么写_功能块_09


代码如下:

python 三菱mc 三菱程序怎么写_PLC_10


上述即为程序最基本的FB IO功能块。后续再编写气缸等功能块可以在此基础编写,可以省却其大部分的延时及报警。因为所有输入量都有自己单独的延时与报警。

疫情隔离 初次学习使用三菱ST,之前有接触过倍福的ST编程。有许多功能在三菱上没有找到,比如枚举类型,FB功能块的方法,以及继承和接口等功能并没有发现在哪使用。望知道的朋友能在评论区告知。

还有就是在监视状态,如果数组下标为一个变量或常量。监视时程序界面并不会显示当前状态。所以就导致如下图写法,在调试阶段很难知道问题点:

python 三菱mc 三菱程序怎么写_功能块_11


监控时无法在程序上直接看到数组当前值的状态。不知道是否我哪里设置的不对,希望了解的朋友能够赐教。

PS.由于三菱FX的步数及内存限制,大量FB的使用在增加代码复用性及整洁可读性的同时占据会更多的步数。