[PLC]ST语言八:ADD_SUB_MUL_DIV_INC_DEC_WAND_WOR_WXOR_NE

空扰寡人 提交于 2019-12-04 17:58:35
一:ADD_SUB_MUL_DIV_INC_DEC_WAND_WOR_WXOR_NEGwps1

说明:简单的顺控指令不做其他说明。

控制要求:无

编程梯形图:

执行程序主程序梯形图和对应的局部变量

wps2

wps3

执行程序主程序ST语言和对应的局部变量

wps4

wps5

FB块梯形图程序和对应的局部变量

wps6

wps7

FB块ST语言和对应的局部变量

wps8

wps9

结构化编程ST语言(图片中的源码)

FB块调用的ST语言

(*ST语言调用四则运算的FB块的方法,其中除法运算中商和余数包含了结构体和数组的使用方法*)

ST四则逻辑运算_1(智慧工控_ST_加数1:= ST_加数1 ,     智慧工控_ST_加数2:= ST_加数2 ,     智慧工控_ST_加结果1:=ST_加结果1 ,     智慧工控_ST_调用加法:= ST_调用加法 ,

智慧工控_ST_减数1:=ST_减数1 ,     智慧工控_ST_减数2:=ST_减数2 ,     智慧工控_ST_减结果1:=ST_减结果1 ,     智慧工控_ST_调用减法:=ST_调用减法 ,

智慧工控_ST_乘数1:=ST_乘数1 ,     智慧工控_ST_乘数2:=ST_乘数2 ,     智慧工控_ST_乘结果1:=ST_乘结果1 ,     智慧工控_ST_调用乘法:=ST_调用乘法 ,

智慧工控_ST_除数1:= ST_除数1 ,     智慧工控_ST_除数2:=ST_除数2 ,     智慧工控_ST_调用除法:=ST_调用除法 ,     智慧工控_ST_除法结果:= ST_除法结果.ST结果商1和余数1 ,

智慧工控_ST_调用加一:= ST_长通 ,     智慧工控_ST_加一结果:= ST_加一结果,

智慧工控_ST_调用减一:= ST_调用减一,     智慧工控_ST_减一结果:= ST_减一结果 ,

智慧工控_ST_调用逻辑与:= ST_调用逻辑与,     智慧工控_ST_逻辑与数据1:= ST_逻辑与数据1 ,     智慧工控_ST_逻辑与数据2:= ST_逻辑与数据2,     智慧工控_ST_逻辑与结果:= ST_逻辑或结果 ,

智慧工控_ST_调用逻辑或:= ST_调用逻辑或 ,     智慧工控_ST_逻辑或数据1:= ST_逻辑或数据1 ,     智慧工控_ST_逻辑或数据2:= ST_逻辑或数据2,     智慧工控_ST_逻辑或结果:= ST_逻辑或结果 ,

智慧工控_ST_调用逻辑异或:= ST_调用逻辑异或 ,     智慧工控_ST_逻辑异或数据1:= ST_逻辑异或数据1 ,     智慧工控_ST_逻辑异或数据2:= ST_逻辑异或数据2 ,     智慧工控_ST_逻辑异或结果:= ST_逻辑异或结果 ,

智慧工控_ST_调用补码:= ST_调用补码 ,     智慧工控_ST_补码结果:= ST_补码结果 );

FB块中的ST语言

(*加法运算ADDP(EN,s1,s2,d);*)

ADDP(智慧工控_ST_调用加法,智慧工控_ST_加数1,智慧工控_ST_加数2,智慧工控_ST_加结果1);

(*减法运算SUBP(EN,s1,s2,d);*)

SUBP(智慧工控_ST_调用减法,智慧工控_ST_减数1,智慧工控_ST_减数2,智慧工控_ST_减结果1);

(*乘法运算MULP(EN,s1,s2,d);*)

MULP(智慧工控_ST_调用减法,智慧工控_ST_乘数1,智慧工控_ST_乘数2,智慧工控_ST_乘结果1);

(*除法运算DIVP(EN,s1,s2,d);*)

DIVP(智慧工控_ST_调用除法,智慧工控_ST_除数1,智慧工控_ST_除数2,智慧工控_ST_除法结果);

(*加一运算INCP(EN,d);*)

INCP(智慧工控_ST_调用加一,智慧工控_ST_加一结果);

(*减一运算DECP(EN,d);*)

DECP(智慧工控_ST_调用减一,智慧工控_ST_减一结果);

(*逻辑与运算WANDP(EN,s1,s2,d1);*)

WANDP(智慧工控_ST_调用逻辑与,智慧工控_ST_逻辑与数据1,智慧工控_ST_逻辑与数据2,智慧工控_ST_逻辑与结果);

(*逻辑或运算WORP(EN,s1,s2,d1);*)

WORP(智慧工控_ST_调用逻辑或,智慧工控_ST_逻辑或数据1,智慧工控_ST_逻辑或数据2,智慧工控_ST_逻辑或结果);

(*逻辑异或运算DIVP(EN,s1,s2,d);*)

WXORP(智慧工控_ST_调用逻辑异或,智慧工控_ST_逻辑异或数据1,智慧工控_ST_逻辑异或数据2,智慧工控_ST_逻辑异或结果);

(*补码运算NEGP(EN,d);*)

NEGP(智慧工控_ST_调用补码,智慧工控_ST_补码结果);

;

wps10

wps11

wps12

wps13

wps14

wps15

wps16

wps17

wps18

wps19

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!