说明
编程时,遇到困难,选中控件按【F1】
控件视图放大:ctrl+鼠标滚轮
控件宽度放大:鼠标右键》选项》LAD》宽度155
【I】输入
200smart 上限 i0.0~i31.7 0~255【256个输入点】
i0.0~i31.7 八进制 【布尔 bool 】
ib0~ib127 【单字节】 8bit
iw0~iw127 【双字节】 16bit
id0~id127 【4字节】 32bit
【Q】输出
q0.0~q31.7 八进制 【布尔 bool 】
qb0~qb127 【单字节】
qw0~qw127 【双字节】
qd0~qd127 【4字节】
可以用传送指令,把寄存器值映射到输出
注意输出双线圈问题?以最后一条逻辑为准。
【1】置位 复位解决双线圈问题
【2】M0对应Q0.0输出。M的.0到.7用于q0.0输出代替。最后M0.0~M0.7并联,再输出Q0.0
【M】辅助触点
200smart,上限 m0.0~m31.7
m0.0~m31.7 八进制 【布尔表示法】
mb0~mb1 【单字节】 8bit
mw0~mw2 【双字节】 16bit
md0~ md4 【4字节】 32bit
【S】状态点
200smart,上限 S0.0~S31.7
【1】用set进入s0.1
【2】SCR S0.1 开始子循环
【3】SCRT S0.2 跳转S0.2条件
【4】SCRE 子程序结尾处
【R】5 复位S状态5个点【主程序】 s0.0做全部结束用
只有S0.1置位,才会运行这个程序段。 仍然有双线圈问题。用 (置位复位)线圈
【V】用户寄存器
取出VW199是VB199和VB200
排序 VW199后VW201后VW203 每次加16bit
排序 VD199 后VW203后VW207 每次加32bit
B 8bit
W 16bit
D 32bit
v0.0~v999.7 八进制 // 最大 V24575.7
vb0~vb24575 单字节 8bit //最大 VB24575
vw0~vw2 双字节 16bit
vd0~ vd4 4字节 32bit
【沿指令】上升沿
——|P|—— 上升沿
——|N|—— 下降沿
跟三菱有区别,需要串联在【开关量】后面
【位指令】置位,复位
表示:置位8个bit,从q0.0~q0.7都置位 1
(S) 置位
(R) 复位
——|NOT|—— 取反输出
【定时器】
最小从 T32 开始
跟三菱有区别:
T000~T199 100ms
T200~T245 10ms
T246~T249 1ms 累计【电容保持】满电10天
T250~T255 100ms累计【电容保持】
电位器:
VR1:D8030 // 0~255值 【MUL D8030 K10 D0】 // D0 = D8030 x 10;
VR2:D8031 // 0~255值 ()T0 D8030 定时器T0直接用d8030的值
【步进指令】顺序指令
【注意】任有双线圈问题。用set规避,程序只隔离输入。
【1】先置位进入步进程序
【2】SCR 程序环开始
【3】SCRT 程序跳出
【4】SCRE 程序环结束
【中断】
ENI 总开
DISI 关
RETI 返回,中断事件程序内部结束
ATCH 中断配置 【int中断程序,EVNT中断触发源】
SM34 时基1ms【范围1~255ms】
SM35
【运动】
ST60有4路 100KHz 轴
【1】轴选用 AXIS0_CTRL 常通
【2】轴使能 AXIS0_DIS 常通
【3】点动 AXIS0_MAN
【4】回零 AXIS0_RSEEK 上升沿
【5】定位 AXIS0_GOTO 上升沿【位置,速度,0绝对/1相对,停车】
【6】
台达: 公共端:35 【DC24v】 方向:39 脉冲:43 恢复出厂:P2-08=10 模式:P1-01=00 02 03 //高电平101 低电平001 急停:P2-17=121 右限位:P2-15=122 左限位:P2-16=123 分子:编码器分辨率 分母:单圈脉冲数 DI定义:P2-10~17 DO定义:p2-18~22
【曲线运动】
曲线最多32条
曲线运动 AXIS0_RUN 第1条坐标值用0,第2条坐标值用1,第3条坐标值用2
【TCP】
向导》》》》》 Get 和 Put
【Req】 连接请求【上升沿】
【Connect】连接开关
【RW】 0 = 读取,1 = 写入
【Addr】 【Count 】
00001 至 09999(DO) 1 至 1920 位
10001 至 19999(DI) 1 至 1920 位
30001 至 39999(AI)只读 1 至 120 字 // aw120
40001 至 49999(reg) 1 至 120 字
400001 至 465535 1 至 120 字
【DataPtr】 数据包指针,如 &VB1500
【Connect】 连接开关【置位1】
【IP_Port】 开放端口,如 502
【MaxIQ】 最大io点 各256点
【MaxAI】 地址 3xxxx 的字输入 (AW) 数设置为 0 至 56。值 0 表示禁用【模拟量输入】
【MaxHold】 4区寄存器个数。
【HoldStart】 数据包指针,如 &VB1200
【POU】程序
可以把子程序做成FB块给其他程序用。
【库】》【创建库】》先修改库名,再添加组件
L是局部参数,只能60字节,16个。
【指针】32bit
【地址】以字节为单位。地址是32bit
【 & 】取地址,基础偏移 &VB6 取VB6的地址,
取地址必须用【双字32bit】mov_dw
【 * 】解地址,取值 *VD1234 // vb6+3是vb9
【MOV_D】*VD1234表示VD9开始
【MOV_W】*VD1234表示VW9开始
【MOV_B】*VD1234表示VB9开始
总结:如取出的地址2,实际上是常数,MOV的bwd决定是VB2还是VW2
vb6加3后是vb9
9后面用mov_D 就是 vd9
9后面用mov_W 就是 vw9
9后面用mov_B 就是 vb9
VB0的值,给VB2000
指针还用到【整体移动】的功能,BLKMOV
【缺陷】
C语言的分支输出,不会影响结果。但是PLC不行,它以最后结果为准。
解决办法是让程序不运行。可以用【子程序】【顺序SCR】【M点过渡】
双线圈问题:可以用子程序解决。
【字符串】
字符串:第1字节:字节总长度。 //一个汉字,2个字节
第2字节开始:字符串内容。
【结束】后面都是未使用的字节,值都是16#00 【'$00'】
跟数组一样,下标 0 最高位
VW200实际要理解成 V200 取W16bit出来
VB200跟VW200前8bit是重叠的。
vw199取出来的是VB199和VB200
【】