PLC的寄存器分为单字(Word)和双字(Dword),Word占用2个字节Byte,Dword占用4个字节Byte;
在PLC和其他设备通讯往往以字节为单位进行传送的,根据不同的通讯协议,传送所发的内容不一致,其中有些协议需要进行前后字节交换,向常见的PLC,三菱,汇川等日系PLC有专门的指令SWAP来进行转换;例如寄存器 A:=16#AABB,经过SWAP指令后,A=16#BBAA
Codesys编程和传统的PLC编程不一样,Codesys编程是属于一种面向对象的编程方式,使用起来比较具有灵活性,可以根据自己的编程习惯风格来进行编程程序;下面举例如何使用Codesys来进行编写SWAP指令;
新建Codesys文件,设备选择V3-X64,编程语言支持6种,这里举例仅使用结构化文本ST;
在变量声明区先定义程序中要出现的变量,然后在程序执行区编写运行的程序;
代码如下:
---------------------------------------变量声明区--------------------------------------------------------------------------
PROGRAM PLC_PRG//程序名字
VAR
//
IN :WORD;//IN是变量名称, WORD是变量变量类型
OUT :WORD;
END_VAR
---------------------------------------程序执行区-------------------------------------------------------------
OUT :=IN/256+(IN MOD 256)*256;
(*
16位数据除以256,即将16位数据的高低8位自动分开。
例如原数值是;2#1111111100000000,转换成10进制就是 65280,转换出16进制就是FF00.
将该数值除以256和取余256,结果分别是 数值的高8位(整数),和数值的低8位(余数)
再将余数乘以256+整数得出的新数据就是高低字节转换后的数值;
*)
------------------------------------------------仿真----------------------------------------------------------------
在在线选项找那个选择仿真模式,当软件最低下出线仿真的时候,点击登录,然后在弹出的界面选择确认;
点击程序声明区的准备值,右键将显示模式更改成16进制,然后输入当前值16#AABB,然后点击调试写入值即可进行仿真;
需要学习PLC(三菱,西门子,汇川,禾川,信捷,台达,松下,欧姆龙,Codesys)可以在评论区留言;