PLC用ST语言 在CODESYS软件中,编写手柄控制程序实例
首先定义:
PROGRAM handctrl
VAR
HandX:UINT;
HandY:UINT;
Joy_XL:u4_20var; (*手柄X轴 左移*)
Joy_XR:u4_20var; (*手柄X轴 右移*)
Joy_YUP:u4_20var; (*手柄Y轴 上移*)
Joy_YDW:u4_20var; (*手柄Y轴 下移*)
Joy_XLu:UINT;(*手柄X轴 左移输出值*)
Joy_XRu:UINT;(*手柄X轴 右移输出值*)
Joy_YUPu:UINT;(*手柄Y轴上移输出值*)
Joy_YDWu:UINT;(*手柄Y轴下移输出值*)
END_VAR
然后编写程序部分:
(*手柄上移*)
Joy_YUP(
x:=handle_AinY , (*Y轴的端口采集端数据*)
xMin:=32750 , (*Y轴中位*)
xMax:=58000 , (*Y轴上移动最大值*)
yMin:= 0,
yMax:=18500 ); (*给的资料比例阀资料显示最大极限电流是1A, 电阻是13.4欧姆。 测量下给PWM端口上数据多大值是电压是13V,并把此值作为最大开启的电压数值*)
Joy_YUPu:=REAL_TO_UINT(Joy_YUP.y);(*手柄Y轴上移输出值*)
(*手柄下移*)
Joy_YDW(
x:=handle_AinY , (*Y轴的端口采集端数据*)
xMin:=6500 , (*Y轴下移动最大值*)
xMax:=32650 , (*Y轴中位*)
yMin:= 0,
yMax:=18500 ); (*给的资料比例阀资料显示最大极限电流是1A, 电阻是13.4欧姆。 测量下给PWM端口上数据多大值是电压是13V,并把此值作为最大开启的电压数值*)
Joy_YDWu:=REAL_TO_UINT (18500 - Joy_YDW.y );(*手柄Y轴下移输出值*)
(*手柄X轴 左移*)
Joy_XL(
x:=handle_AinX , (*X轴的端口采集端数据*)
xMin:=6400 , (*X轴左移动最大值*)
xMax:=31950 , (*X轴中位*)
yMin:= 0,
yMax:=18500 ); (*给的资料比例阀资料显示最大极限电流是1A, 电阻是13.4欧姆。 测量下给PWM端口上数据多大值是电压是13V,并把此值作为最大开启的电压数值*)
Joy_XLu:=REAL_TO_UINT ( 18500 - Joy_XL.y ) ;(*手柄X轴左移输出值*)
(*手柄X轴 右移*)
Joy_XR(
x:=handle_AinX , (*X轴的端口采集端数据*)
xMin:=32050 , (*X轴中位*)
xMax:=58300 , (*X轴右移动最大值*)
yMin:= 0,
yMax:=18500 ); (*给的资料比例阀资料显示最大极限电流是1A, 电阻是13.4欧姆。 测量下给PWM端口上数据多大值是电压是13V,并把此值作为最大开启的电压数值*)
Joy_XRu:=REAL_TO_UINT ( Joy_XR.y );(*手柄X轴右移输出值*)
IF (32050 > handle_AinX) AND (handle_AinX >31950) AND handle_AinY >=32750 THEN (*X轴在中位 手柄上移 输出*)
ProvalveA_out:=Joy_YUPu;(*比例阀APWMXM1.01手柄Y轴上移输出值*)
ProvalveB_out:=Joy_YUPu;(*比例阀BPWMXM1.02手柄Y轴上移输出值*)
ProvalveE_out:=18500;
ELSIF (32050 > handle_AinX) AND (handle_AinX >31950) AND handle_AinY <=32650 THEN (*X轴在中位 手柄下移 输出*)
ProvalveC_out :=Joy_YDWu ; (*比例阀CPWMXM1.03手柄Y轴下移输出值*)
ProvalveD_out :=Joy_YDWu ; (*比例阀D输出XM1.04手柄Y轴下移输出值*)
ProvalveE_out:=18500;
ELSIF (32750 > handle_AinY) AND (handle_AinY>32650) AND handle_AinX <=31950 THEN (*Y轴在中位 手柄左移*)
ProvalveB_out:=Joy_XLu;(*比例阀BPWMXM1.02手柄X轴左移输出值*)
ProvalveC_out :=Joy_XLu ; (*比例阀CPWMXM1.03手柄X轴左移输出值*)
ProvalveE_out:=18500;
ELSIF (32750 > handle_AinY) AND (handle_AinY>32650) AND handle_AinX >=32050 THEN (*Y轴在中位 手柄右移*)
ProvalveA_out:=Joy_XRu;(*比例阀APWMXM1.01手柄X轴右移输出值*)
ProvalveD_out :=Joy_XRu ; (*比例阀D输出XM1.04手柄X轴右移输出值*)
ProvalveE_out:=18500;
ELSIF handle_AinY >=32750 AND handle_AinX <31950 THEN (* B区*)
ProvalveB_out:=18500;(*比例阀BPWMXM1.02*)
ProvalveE_out:=18500;
ELSIF handle_AinY >=32750 AND handle_AinX >32050 THEN (* A区*)
ProvalveA_out:=18500; (*比例阀APWMXM1.01*)
ProvalveE_out:=18500;
ELSIF handle_AinY <=32650 AND handle_AinX >32050 THEN (*D区*)
ProvalveD_out :=18500;
ProvalveE_out:=18500;
ELSIF handle_AinY <=32650 AND handle_AinX <=31950 THEN (*C区*)
ProvalveC_out :=18500;
ProvalveE_out:=18500;
ELSE
ProvalveA_out:=0;(*比例阀APWMXM1.01手柄Y轴上移输出值*)
ProvalveB_out:=0;(*比例阀BPWMXM1.02手柄Y轴上移输出值*)
ProvalveC_out :=0 ; (*比例阀CPWMXM1.03手柄Y轴下移输出值*)
ProvalveD_out :=0 ; (*比例阀D输出XM1.04手柄Y轴下移输出值*)
ProvalveE_out:=0;
END_IF
(* 手柄数据和 PWM 都要实际测试的
X轴测试数据 左6400 中位 32000 右58300
Y轴测试数据 上58000 中位 32700 下 6500
上 AB 下CD 左BC 右AD
*)
其实写起来,挺方便简单的,ST语言能实现复杂算法的编程,相比梯形图等语言,可复制粘贴,大大缩短编程效率。
PLC入门编程实例之“无暇手柄”安全系统
无暇手柄
用两个按钮构成一个无暇手柄,两按钮必须同时按下,防止操作员单手就能控制,两按钮间的距离保持在300mm左右。
相关问答
假如车间没有控制系统(PLC或dcs),想做个控制回路怎么...-...
如果就是控制启停,就找个液位开关,设好高低限。看看泵电机大小,小电机直接到接触器控制线圈里,大电机再找个继电器转下就好了。这个市面上有很多单...
c6140型车床主轴电动机与冷却泵电动机的电气控...-汇财吧专...
[回答]C6140床的电机启动很简单的:这两个电机没有关连,没有先后之分,是独立控制的主轴电机通过中拖板上涪川帝沸郜度佃砂顶棘的按钮控制电气柜内接触器启...
怎么在控制面板开启cpu-ZOL问答
如果没看到这个图标说明你没安装成功STEP7Micro/WINV4.0SP9软件,那就谈不上连接PLC通讯了。计算机有COM1可用于与PLC通讯时,设置PG/PC接口参...
天车卷扬升降控制电路介绍?
具备故障自查反应。作为控制系列目前有两大类。一是继电器普通控制。故障率高,对维护人员要求不高,零件更换容易,价格便宜。二是PLC控制。故障率低,显示直...
浇筑构造柱最简单快速的方法?
关于浇筑构造柱最简单快速的方法如下:1.预制模板:在浇筑构造柱时,首先需要做的是准确的标记和设置模板位置,并将模板预制完成,确定好模板的尺寸和保证模板...
全自动钢筋弯曲机怎么操作呢?
[回答]点经常注油。4.生产任务结束或下班后,关闭总电源及设备电源,锁好电源控制柜,清理设备上的灰尘杂物,扫除工作场所机责任区域的卫生,各类物品整齐...
全自动钢筋弯曲机怎么操作呢?
[回答]1.将摇臂处于垂直位置,并以此作试验的起始状态,将试样先穿入两夹片中底板的孔内,然后垂直向上从拨杆的下部穿过拨杆孔再穿入上夹至顶部,转动上夹头...
摇杆键位冲突,大家遇上过吗-ZOL问答
你是在玩哪个游戏啊,再有那个手柄指示灯亮着没有用(0)回复目前的固件是存在...信捷PLC与MCGS触摸屏怎么通讯???基于modbus协议的1万浏览7回答ZOL问...
为什么旋转开关可以控制水温,他的工作原理是什么,很好奇
为什么旋转开关可以控制水温,他的工作原理是什么,很好奇
为什么电路会自动倒相?
我是电子及工控技术,我来回答这个问题。朋友们都知道在动力线三相交流电中有U相、V相和W相这三相电,题目所说的电路自动倒相也就是我们所俗称的三相电的换相。...