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)可以在评论区留言;

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐