兰溪| 峨眉山| 海南| 晋中| 易门| 陇县| 上犹| 古丈| 北海| 麻山| 富顺| 龙游| 鄂温克族自治旗| 元阳| 聂荣| 新安| 新城子| 南和| 环江| 湟中| 凤阳| 巴林左旗| 交口| 歙县| 岷县| 乐昌| 呼兰| 常德| 平远| 大冶| 龙泉| 楚州| 马尾| 宾县| 洪雅| 瑞金| 忻州| 德江| 辽阳县| 广丰| 连平| 八宿| 路桥| 古蔺| 青龙| 策勒| 天津| 铅山| 黄岛| 耒阳| 巴林右旗| 兴仁| 新县| 都江堰| 临猗| 保德| 长兴| 老河口| 炎陵| 大连| 永新| 耒阳| 马龙| 石台| 广饶| 五华| 武鸣| 古浪| 资溪| 新和| 淇县| 中方| 安平| 古蔺| 昌江| 浏阳| 临川| 周至| 梁平| 额济纳旗| 海门| 泗阳| 九江市| 乌审旗| 兰溪| 吉木乃| 信阳| 嘉义市| 临夏县| 西安| 鹤峰| 仁化| 南涧| 武定| 兰州| 永济| 召陵| 澎湖| 齐齐哈尔| 泽库| 会东| 克拉玛依| 东港| 乌兰浩特| 马祖| 巴塘| 寻甸| 临泽| 邗江| 尼玛| 宁武| 武宁| 萝北| 凌源| 隆安| 和县| 盐津| 房县| 札达| 浪卡子| 连州| 襄阳| 沂水| 西沙岛| 灞桥| 清水| 香港| 井陉| 宾阳| 南充| 竹溪| 平原| 远安| 措美| 仁怀| 扎兰屯| 肥东| 綦江| 黄梅| 叶县| 海沧| 扎囊| 瑞丽| 阿克塞| 瓯海| 驻马店| 安龙| 花都| 双江| 翼城| 沁水| 平原| 申扎| 湖口| 玉树| 辉县| 乌海| 八一镇| 阜新市| 瓯海| 朝阳县| 略阳| 巩留| 白城| 镇康| 梁平| 鄂州| 响水| 千阳| 上思| 芜湖县| 革吉| 积石山| 兰坪| 海安| 淳安| 武隆| 敦煌| 嘉善| 英山| 安多| 阿城| 嵊泗| 长阳| 汉阴| 马山| 贵德| 东平| 武强| 合山| 永安| 南平| 梨树| 安丘| 费县| 绥化| 神农架林区| 玉屏| 垦利| 塘沽| 雷波| 钓鱼岛| 阿图什| 红安| 德钦| 黔西| 八一镇| 宁城| 尼勒克| 名山| 布拖| 昌邑| 安陆| 武平| 德庆| 金山| 遂宁| 左云| 明水| 新竹县| 萧县| 云浮| 明水| 伽师| 阳信| 扶绥| 牡丹江| 湄潭| 万盛| 永宁| 攸县| 南海镇| 宝丰| 洛阳| 日喀则| 湘潭县| 清水河| 江城| 江都| 镇巴| 安庆| 阿鲁科尔沁旗| 安西| 安乡| 太湖| 新平| 界首| 尤溪| 南岔| 铜山| 炎陵| 滦南| 濮阳| 任丘| 南木林| 新建| 罗甸| 建宁| 沂水| 浦口| 阳西| 从江| 肥东| 五寨| 澳门百老汇注册送40 尊尚娱乐平台 美高梅开户网址 澳门电子游戏网 新葡京官方网址 威尼斯线上开户 威尼斯人线上官网,澳门威尼斯赌城,威尼斯娱乐城下载 小学语文教案|小学语文课件|小学语文网 金沙在线赌博 澳门娱乐8 澳门威尼斯人注册送38,威尼斯人线上娱乐场官网,威尼斯在线娱乐 澳门皇冠赌城 电子游艺糖果派对 娱乐平台官网 黄金城官网 正规博彩网 澳门娱乐在线 真人博狗网 葡京注册 澳门威尼斯平台,威尼斯人线上娱乐官网,澳门威尼斯娱乐网 任你干在线精品视频 天堂鸟娱乐 官网- 永利博线上娱乐国际 葡京在线官方 澳门威尼斯赌城,威尼斯网站注册,澳门威尼斯人官网 百佬汇娱乐 ag游戏大厅 威尼斯官网开户 新葡京官方赌场 皇冠现金直营 爱拼网官网 澳门网站大全 澳门威尼斯注册 pt老虎机游戏 cc国际网投平台 葡京在线官方 明升国际体育 澳门百家乐平台 宝盈集团bbin官网 新濠天地娱乐场网址 mg电子游艺注册送钱 威尼斯网站注册,澳门威尼斯人官网,澳门威尼斯人网站 威尼斯人网站大全 葡京官方网 百乐门直营 至尊国际娱乐平台 葡京国际网站 澳门巴黎人官网网址 威尼斯娱乐官方网站,澳门娱乐网站大全,威尼斯赌场网址 威尼斯网上娱乐平台 金沙开户网址 澳门皇冠赌城网址 葡京国际网站 澳门盘口即时赔率 威尼斯人注册送28 现金网注册送白菜 小学资源网||www.xj5u.com tt线上娱乐网址 糖果派对电子游戏 威尼斯娱乐官网,澳门威尼斯注册送300,威尼斯线上 澳门现场赌博 皇冠国际官方网站 历史_历史故事大全_历史朝代表百科知识_历史的天空 葡京平台 永利国际娱乐网站 葡京国际 果博东方在线娱乐 澳门威尼斯注册 电子游艺娱乐平台 金沙开户网站 澳门葡京娱 麒麟网娱乐平台 澳门威尼斯人开户 澳门娱乐场 bet365官方网站是多少 葡京官方网 bet16瑞丰备用网址 威尼斯人在线娱乐城 澳门豪门国际赌场 红桃K娱乐 葡京注册网址 g游戏网站 sunbet申博下载 永利赌场网址是多少 钻石娱乐电玩城 澳门百家乐官方网站,澳门百家乐怎么玩,澳门百家乐网站,澳门百家乐网 金牌娱乐平台 网投 学术文献共享网 威尼斯线上赌场 永辉国际环球 易博 真博百楽 威尼斯官方开户,威尼斯人线上开户,澳门威尼斯娱乐在线 论文网 葡京国际网站 澳门威尼斯注册送38 网络赌钱平台 金沙线上注册 888真人官网 糖果派对电子游戏 金沙官方 外围网站推荐 永利赌场正网 金沙网投 威尼斯人网投是否可靠 威尼斯在线赌博 威尼斯娱乐官方网站 金沙国际唯一官网网址 金沙平台代理 和记娱乐平台官方网站 合乐在线登录 澳门百家乐网址 葡京网上赌场 网盘007官网 葡京在线网投 新葡京国际网 cc国际网投平台 澳门凯旋集团 博狗开户 澳门威尼斯网上娱乐 时时博赌场 500万比分直播 金沙娱乐时时彩 澳门威尼斯网上娱乐场 果博东方18gobo 威尼斯线上娱乐官网 日博娱乐 时时博线上娱乐 永利官网 葡京网站 威尼斯在线赌博 果博东方168111999 金沙赌城网投 威尼斯平台官网,威尼斯人娱乐城图片,威尼斯在线网投 澳门威尼斯注册 澳门威尼斯人娱乐网址 威尼斯人娱乐,威尼斯人娱乐注册,澳门威尼斯赌城 澳门葡京赌场直营 博狗网址 博九娱乐 威尼斯在线娱乐 威尼斯人官方 任你干免费视频在线 葡京直营官方 云顶赌场网站 曼哈顿娱乐 日博官网 皇冠国际赌场 德州扑克游戏平台/ sunbet网上版 澳门百利宫娱乐 澳门威尼斯人开户网址 葡京官方网址 澳门葡京酒店官方网站 吉祥坊官网2012 葡京网址平台 澳门金沙网址 新葡京国际老品牌 美高梅娱乐4858

晚年张学良自陈:如我有卖国的行为 情愿头颅被割下

2018-07-23 04:16 来源:中国贸易新闻

  晚年张学良自陈:如我有卖国的行为 情愿头颅被割下

  威尼斯注册开户四是带头贯彻执行民主集中制。在观看了新华社制作的融媒体产品《“90后”全国人大代表程桔:小丫回村当书记》后,栗战书对新闻媒体创新两会报道给予充分肯定。

习近平同志是全党拥护、人民爱戴、当之无愧的党的核心、军队统帅、人民领袖,是新时代中国特色社会主义国家的掌舵者、人民的领路人。会议分别经过表决,决定将大会关于最高人民法院工作报告的决议草案、关于最高人民检察院工作报告的决议草案提请各代表团审议。

  领导核心坚强,党和国家事业就充满希望。这块纪念牌是1979年10月法国政府为了纪念周恩来而特别设立的。

    纪念馆展览生动地记录了周总理在新会深入调查研究和视察指导工作的情景,展示了周总理无私奉献的共产主义精神,实事求是的工作态度,与人民亲密无间、水乳交融的高尚品质。周恩来在生命的最后阶段想到了什么?遗言国宝交故宫周恩来临终交代邓颖超,将六伯父原来收藏的、自己平常喜欢观赏的那批国宝级文物在他去世后“全部交给国家,由故宫博物院全权处理”。

  之前,党组织费尽周折,终于找到了寄养刘爱琴的那家工人的住址,周恩来立刻将寻找刘爱琴的任务交给了“车夫”。

  3月17日,十三届全国人大一次会议在北京人民大会堂举行第五次全体会议。

  要坚持求真务实、真抓实干,因地制宜推进改革,加大指导服务力度,增强抓落实的本领和能力,不断取得深化工会改革创新的新成效。“维护核心、听从指挥,最根本的是在任何时候任何情况下都坚决维护和贯彻军委主席负责制”“国家大柄,莫重于兵。

  各地区各部门要坚决落实党中央确定的深化党和国家机构改革任务。

  “五年来,人民军队恢复了一些带根本性的东西,破解了一些深层次矛盾,取得了一些开创性成果,在中国特色强军之路上迈出了坚实步伐。在归国前夕,他冒雨游览京都的岚山,那天天气不好,在蒙蒙春雨中,他看见太阳偶尔从云缝中射出一线光芒,使眼前的山水显得格外秀丽娇研,他不由联想到自己追求的真理,多像这穿云破雾的阳光啊,这时他兴奋、喜悦之情溢于言表,挥笔写下了《雨中岚山》这首诗。

  还有后面的人也会想到,我这个地方有问题,中央政府会给我兜底,有这样一种考虑。

  葡京国际城“五年来,人民军队恢复了一些带根本性的东西,破解了一些深层次矛盾,取得了一些开创性成果,在中国特色强军之路上迈出了坚实步伐。

  把尊法学法守法用法情况作为考核领导班子和领导干部的重要内容。沈春耀透露,截至目前,已有30个省、自治区、直辖市人大常委会书面反馈清理情况和处理意见,包括设区的市、自治州、自治县在内,总共已修改、废止相关地方性法规35件,拟修改、废止680件。

  威尼斯娱乐官方网站 钻石娱乐网站 葡京官方网址

  晚年张学良自陈:如我有卖国的行为 情愿头颅被割下

 
责编:
?
? Advertisement
深圳市英威腾电气股份有限公司
Advertisement Advertisement
当前位置:
vb6.0用ppi协议怎么让s7-200的q0.1或q0.0置1
回复 | 人气 | 打印
zhzhang9756 个人主页 给TA发消息 加TA为好友 悬赏15分-未结帖 发表于:2018-07-23 23:50:17 楼主

vb6.0或vba用ppi协议怎么让s7-200的q0.1或q0.0置1,具体怎么写?

===================================

更新,谢谢楼下各位大侠们的回复,问题已经解决。在这留个记号,给有同样疑问的朋友们,以下是按PPI协议编写的一小段VBA程序,是把数据写入QB0存储器,使Q0.7~Q0.0口得到不同的状态。至于怎么从S7-200里读数据,网上有很多介绍的,百度一下即可。在楼下我也转载一些我从网上查到的资料供大家参考。(以下程序用S7-200仿真模拟软件\IASIMU107B测试过,能正常使用,但还没有在S7-200上测试,等测试完如有变化再更新):


Private Sub Q00_Click()
Q0_Value = &H1    ‘写给像我一样的PLC菜鸟:&H1是16进制的1,转换成八位二进制就是00000001,这是让Q 0.0=1;如果让Q0.1=1,则=&H2(八位二进制00000010);让Q0.2=1,则=&H4(八位二进制00000100);让Q0.1和Q0.0同时=1,则=&H3(八位二进制00000011);这个值可以是&H0~&HFF中的任意一个值,使Q0.7~Q0.0得到得到不同的状态

Write_Q0 (Q0_Value)
End Sub

Sub Write_Q0(ByRef Q0_Value)

Dim str_write(0 To 37) As Byte
Dim str_val(0 To 5) As Byte
Dim haha As Byte
Dim i As Integer
Dim Temp_FCS As Variant

MSComm1.RThreshold = 24

str_write(0) = &H68
str_write(1) = &H20
str_write(2) = &H20
str_write(3) = &H68
str_write(4) = &H2
str_write(5) = &H0
str_write(6) = &H7C
str_write(7) = &H32
str_write(8) = &H1
str_write(9) = &H0
str_write(10) = &H0
str_write(11) = &H0
str_write(12) = &H0
str_write(13) = &H0
str_write(14) = &HE
str_write(15) = &H0
str_write(16) = &H5
str_write(17) = &H5
str_write(18) = &H1
str_write(19) = &H12
str_write(20) = &HA
str_write(21) = &H10
str_write(22) = &H2
str_write(23) = &H0
str_write(24) = &H1
str_write(25) = &H0
str_write(26) = &H1
str_write(27) = &H82
str_write(28) = &H0
str_write(29) = &H0
str_write(30) = &H0 ' 如果是改写Q0.x,这个地方就=&H0;如果是改写Q1.x,这个地方就是=&H8
str_write(31) = &H0
str_write(32) = &H4
str_write(33) = &H0
str_write(34) = &H8

str_write(35) = Q0_Value  'QB的值,也就是Q0.x或Q1.x的状态


For i = 4 To 35
    Temp_FCS = Temp_FCS + str_write(i)
    Next
str_write(36) = Temp_FCS Mod 256
str_write(37) = &H16
MSComm1.Output = str_write
Sleep (50)
str_val(0) = &H10
str_val(1) = &H2
str_val(2) = &H0
str_val(3) = &H5C
str_val(4) = &H5E
str_val(5) = &H16

MSComm1.Output = str_val
End Sub


Private Sub UserForm_Initialize()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,e,8,1"
MSComm1.InputLen = 0
MSComm1.RThreshold = 24
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
End Sub

分享到: 收藏 回复 举报
Advertisement
CZ198841 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 09:14:20 1楼
 

不是PPI吧?应该是使用自由口通信吧?我就用CBC实现过

  回复 引用 举报
迷茫小电工 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 09:15:24 2楼
 

自由口通信!用PPI 干什么啊 …………

  回复 引用 举报
zhzhang9756 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 16:40:10 3楼
 

回复内容:

对:CZ198841 不是PPI吧?应该是使用自由口通信吧?我就用CBC实现过     内容的回复:

怎么写?帮忙写两句示例?

  回复 引用 举报
zhzhang9756 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 16:42:35 4楼
 

回复内容:

对:迷茫小电工 自由口通信!用PPI 干什么啊 …………     内容的回复:

怎么写?帮忙写两句示例?比如让q0.0置位,复位?

还有读I0.x的状态?

非常感谢!

  回复 引用 举报
迷茫小电工 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 20:57:47 5楼
 


回复内容:

对: zhzhang9756 回复内容:对:迷茫小电工 自由口通信!用PPI 干什么... 内容的回复!

百度一下例子!这个应该是很成熟了……

  回复 引用 举报
zhzhang9756 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 08:22:00 6楼
 

回复内容:

对:迷茫小电工 回复内容:对: zhzhang9756 回复内容:对:迷茫小电工 自由口通信!用PPI 干什么... 内容的回复!百度一下例子!这个应该是很成熟了……     内容的回复:

我百度了,都是写怎么读,没有怎么往Q0里写的

  回复 引用 举报
z26351910 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 08:47:59 7楼
 

自由口通信!用PPI 干什么啊 …………

  回复 引用 举报
zhzhang9756 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 12:46:19 8楼
 

回复内容:

对:z26351910 自由口通信!用PPI 干什么啊 …………     内容的回复:

自由口也不用对PLC预先编程吗?完全由VB或其他高级语言实现控制?

  回复 引用 举报
Q339468465 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 16:29:53 9楼
 

这种东西,百度一堆啊

  回复 引用 举报
zhzhang9756 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 12:51:14 10楼
 

本来想以附件形式上传的,可是试了半天附件贴不上去,只好粘在这了:

PPI协议详解 ppi通讯协议 ppi通信协议 vbppi协议通讯

我们提供 PPI协议的官方文档,协议更新时间为2005年,下面是我们根据文档解析的PPI读取变量返回数据,网上的文献大部分都是讲解如何发送的,对于接收提的很少,其中接收有很多控制位,下面的表格都一一列出,如果想做可靠的工控必须对这些位进行解析,对照官方文档才能做出可靠的工控产品 西门官方PPI协议下载

 

说明

PPI帧头

PPI数据载荷区

PPI帧尾

数据头

参数1

参数2

变量1

起始

长度(重复)

起始

目的地址

源地址

功能码

PPI协议ID

远程操作测试

 

         PCPLC采用主从方式通讯,PC按如下文的格式发读写指令,PLC作出接收正确的响应(返回应答数据E5HF9H见下文分析),上位机接到此响应则发出确认命令(1002 5C 5E 16),PLC再返回给上位机相应数据。一般上位机要连接PLC就要先发送如下寻呼数据10 02 00 49 4B 16 同志们呐!我们可都是有血、有肉、有思想、有灵感的高级动物啊,面对这么多枯燥、无味、复杂、混乱的机器数字你怎么记呢?反正我是记不住啊!(^_^开始洗脑)这时你可以闭上眼睛,安静、静、再静。。。。。。想一想战争时期的战地对讲机通话模式,那么这个指令(1002 00 49 4B 16)就可以理解为:00呼叫02,听到请回答。 10起始符 02是上位机要联系的下位级的地址站号,就是要找的人 00就是上位级本本身自己的站号49寻呼指令 16终止符 其中4B为校验码,是这样得来的:02+00+49的最后两位就是校验码,这就是所说的偶校验或称和校验也称余校验,因为取的是余数。计算器在16进制计算时公式(02+00+49mod100得出的数就是校验码,你计算一下是不是等于4B啊!其他的所有PPI协议校验都是如此。假如02站号的PLC收到寻呼信号那么会回答: 10 00 02 00 02 16  意思是:报告00 02收到,请指示  这样的解释是不是有意思啊!你有更好的解释吗?接下来呢,找到了要寻呼的人PC就是司令啦就可以发号施令了,发号施令后PLC正确接收后就会发送E5 字符,意思是:“02洞两明白。其实啊,说到这里PLC只说他明白,他已经明白了上位机PC的指示,但并没有执行命令,那么要怎么他才执行命令呢?就是上位机PC发出确认命令后才执行。这时上位机会发出(1002 5C 5E 16),意思是:请立即执行。然后PLC就干他应当干的工作了啊!原来PLC也不容易啊,怪不得叫下位机呢!

  说了这么多乱不乱呐!目的就是要理清上下级关系、主从关系,指令的顺序,用一个好的记忆方法记住枯燥无味的机器码。

读命令分析:一次读一条数据
SD LE LER SD DA SA FC DASP SSAP DU FCS ED
SD:(Start Delimiter)
开始定界符(68H)
LE:
Length)报文数据长度
LER:Repeated Length)重复数据长度
SD: (Start Delimiter)开始定界符(68H)
SA:
Source Address)目标地址,指该地址的值,就是PLC的地址
DA:Destination Address)本地地址,指该地址的指针,就是上位机自己的地址
FC:Function Code)功能码,5CH为交替周期触发,6CH为首次信息周期触发,7CH为交替周期触发。
DSAP:Destination Service Access Point)目的服务存取点
SSAP:Source Service Access Point)源服务存取点
DU:Data Unit)数据单元
FCS:Frame Check Sequence)校验码
ED:End Delimiter)结束分界符(16H
报文数据长度和重复数据长度为自DADU的数据长度,校验码为DADU数据的和校验,只取其中的末字节值关于这个校验码的计算方法同上面说明。
在读写PLC的变量数据中,读数据的功能码为 6CH,写数据的功能码为 7CH
对于一次读取一个数据,读命令都是33个字节。前面的0—21字节是相同的,为

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

SD

LE

LER

SD

DA

SA

FC

开始符

长度

长度

开始符

站号

源地址

功能码

协议识别

远程控制

冗余识别

冗余识别

协议数据

单元参考

参数长度

参数长度

数据长度

数据长度

0405

变量地址数

默认ID

68

1B

1B

68

02

00

6C

32

01

00

00

00

00

00

0E

00

00

04

01

12

0A

10

下面我们列表分析读取PLC密码的指令:68 1B 1B 68 02 00 6C32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 08 00 00 03 00 05 E0 D2 16

22

23

24

25

26

27

28

29

30

31

32

DU

FCS

DE

读取长度

数据个数

存储器类型

偏移量

校验码

结束符

02

00

08

00

00

03

00

05

E0

D2

16

因为是PC上发的读PLC数据的命令,SA=00DA=02,如果有多个站,DA要改成相应的站号。读命令中从DADU的长度为1B27个字节。从22字节开始根据读取数据的类型、位置不同而不同。上表是读不同存储器命令的Byte22—32

字节

22

23

24

25

26

27

28

29

30

31

32

功能

读取长度16位小端

数据个数16位小端

存储器类型

偏移量

校验码

结束符

Q0.1

01

00

01

00

00

82

00

00

00

64

16

M0.0

01

00

01

00

00

83

00

00

00

65

16

M0.1

01

00

01

00

00

83

00

00

01

66

16

SMB34

02

00

01

00

00

05

00

00

01

F9

16

VB100

02

00

01

00

01

84

00

03

20

8B

16

VW100

04

00

01

00

01

84

00

03

20

8D

16

VD100

06

00

01

00

01

84

00

03

20

8F

16

I0.5

01

00

01

00

00

81

00

00

05

68

16

I0.7

01

00

01

00

00

81

00

00

07

6A

16

上表读命令的Byte22-32从表中我们可以得出以下结果:
Byte 22 读取数据的长度
011 Bit 021 Byte
04
1 Word 06Double Word
Byte 24
数据个数,这里是01 ,一次读多个数据时见下面的说明。
Byte 26 存储器类型,01V存储器 00:其它
Byte 27 存储器类型
04S 05SM 06AI 07AQ 1E: C 81I 82Q 83M 84V 1F: T
Byte 28,29,30
存储器偏移量指针(存储器地址*8),如:VB100,存储器地址为100,偏移量指针为800,转换成16进制就是320H,Byte 28—29这三个字节就是:00 03 20
Byte 31 校验和,前面已说到这是从(DA+SA+DSAP+SSAP+DU) Mod 256
一次读多条数据
对于一次读多个数据的情况,前21Byte与上面相似只是长度LDLDrByte 14不同:
Byte 14 数据块占位字节,它指明数据块占用的字节数。与数据块数量有关,长度=4+数据块数*10,如:一条数据时为4+10=0E(H);同时读M,V,Q三个不同的数据块时为4+3*10=22(H)
Byte 22 总是02 即以Byte为单位。
Byte 24 以字节为单位,连续读取的字节数。如读2VDByte24=8
Byte 19---30
按上述一次读一个数据的格式依次列出,
Byte 31---42 另一类型的数据,也是按上述格式给出。
以此类推,一次最多读取222个字节的数据。


写命令分析:一次写一个Double Word类型的数据,写命令是40个字节,其余为38个字节。写一个Double Word类型的数据,前面的0—21字节为

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

开始符

长度

长度

开始符

68

21

21

68

02

00

7C

32

01

00

00

00

00

00

0E

00

00

04

01

12

0A

10

68 23 23 68 02 00 6C 32 0100 00 00 00 00 0E 00 00 04 01 12 0A10
写一个其它类型的数据,前面的0—21字节为 :(与上面比较,只是长度字节发生变化)
68 21 21 68 02 00 6C 32 0100 00 00 00 00 0E 00 00 04 01 12 0A10

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

数据长度

数据个数

存储类型

偏移量

数据形式

数据位数

写入值

校验码

终止符

01

00

01

00

00

82

00

00

00

00

03

00

01

01

79

16

22字节开始根据写入数据的值和位置不同而变化。上表是几个写命令的Byte22—40
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3839 40
写入位置及值长度 个数 类型 偏移量 位数 值、校验码、 结束符
M0.0=1 01 00 01 00 00 83 00 00 00 00 03 00 01 01 00 71 16
M0.0=0 01 00 01 00 00 83 00 00 00 00 03 00 01 00 00 70 16
M0.1=1 01 00 01 00 00 83 00 00 01 00 03 00 01 01 00 72 16
vb100=10 02 00 01 00 01 84 00 03 20 00 04 00 08 10 00 AE 16
vb100=FF 02 00 01 00 01 84 00 03 20 00 04 00 08 FF 00 9D 16
VW100=FFFF 04 00 01 00 01 84 00 03 20 00 04 00 10 FF FF A6 16
VD100=FFFFFFFF 06 00 01 00 01 84 00 03 20 00 04 00 20 FF FF FF FF B8 16

写命令的Byte22—最后, 经分析我们可以得出以下结果:
Byte 22-- Byte 30 写入数据的长度、存储器类型、存储器偏移量与读命令相同。TC等不能用写命令写入。
Byte 32
如果写入的是位数据这一字节为03,其它则为04
Byte 34
写入数据的位数
01: 1 Bit 08: 1 Byte 10H: 1 Word 20H: 1 Double Word
Byte 35--40
值、校验码、结束符
如果写入的是位、字节数据,Byte35就是写入的值,Byte36=00Byte37=检验码,Byte38=16H,结束。如果写个的是字数据(双字节),Byte35,Byte36就是写入的值, Byte37=检验码,Byte38=16H,结束。如果写个的是双字数据(四字节),Byte35—38就是写入的值, Byte39=检验码,Byte40=16H,结束。


看完上面的指令分析我们现在就举例几个常用的PPI协议来分析一下:
PC寻呼:        10 02 00 49 4B 16
PLC
返回:      10 00 02 02 04 16
PC
发送:           10 02 00 5C 5E 16
PLC
返回: E5
我们先来看看西门子S7200PLC的读取密码指令:
请用串口软件以16进制发送,端口设置9600e81
发送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 02 00 08 00 00 0300 05 E0 D2 16意思:要求传送系统存储区05E0位开始的8个字符(这就是8个密码数值)。
如果通讯无误,PLC会返回 E5,意思:已经收到
那么这时上位机再次发送指令 10 02 00 5C 5E 16 意思:请执行命令。(说到这里打住一下,PLC返回E5指令后上位机PC要在很短的时间内发送确认指令,晚了刚才的指令就无效了具体多长时间我也没测准,反正12秒时间是没有问题的。)那么这时PLC就真的执行命令了返回如下字符:68 1D 1D 68 00 02 08 32 03 00 00 00 00 00 02 00 0C 00 00 04 01 FF 04 00 40 9B 98 02 06 9D9A 00 76 7D 16

写指令:先发10 02 00 5C 5E 16 后发写指令

 

1、写一位M区(例子M0.0

先发10 02 00 5C 5E 16 收到E5

   68 20 20 68 02 00 7C32 01 00 00 00 00 00 0E 0005 05 01 12 0A 10 01 00 01 00 00 83 00 00 00 00 03 00 01 0180 16

收到E5 说明写入完成(只要报文长度,跟校验码对了,就会回复E5

 

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

开始符

报文长度

报文长度

开始符

目标

地址(PLC

源站地址(上位机)

功能码

68

20

20

68

02

00

7C

32

01

00

00

00

00

00

0E

00

05

05

01

12

0A

10

报文长度为: 目标地址 倒数第二位的校验位前面 的字节长度(根据写入值不通报文长度不同)

功能码:7C表示写入;6C表示读取。

17位:05表示写入;04表示读取。

16位: 16位的05表示写入的是 位或者字节(即用一个字节存储)

       06 表示 字;  08表示双字(4个字节); 0C表示8个字节

 

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

数据长度

数据个数

存储类型

偏移量

数据形式

数据位数

写入值

校验码

终止符

01

00

01

00

00

82

00

00

00

00

03

00

01

01

79

16

数据长度(22位):01位;02字节;04字;06双字。

数据个数:0100表示一个;0200表示连续的两个;0400连续的4个。

存储类型:26位:01 V区;00其他。

          27位:04 S区;05 SM区;06 AI07 AQ1E C

81 I82 Q83 M84 V 1F T

偏移量: 0000 0000 0000 0000 0000 0XXX XXX表示位)

例如:10.3=101 0.011 00 00 53

数据形式:03表示位;04表示其他。

数据位数:即写入数据多少位。01一位;08八位;10十六位;20三十二位。

写入值:写入位,字节均用一个字节存储;写入双字得用四个字节。

校验码:即报文的偶校验(所有之和Mod 100H

终止符:16H

 

M10.3=1写入,  00 00 53             01 D3 (校验码D3是从开头第五个02到倒数第三个01的所有数字的偶校验(算术和))      

因为 0101 0.01110.3)为00 00 53

即:68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 120A 10          01 00 01 00 00 8300 00 53 00 03 00 01 01D3 16

 

M10.3=0

即:68 20 20 68 02 00 7C 32 01 00 00 00 00 00 0E 00 05 05 01 120A 10          01 00 01 00 00 8300 00 53 00 03 00 01 00D2 16

 

 

2、写V区一个字节(例子VB100=10H

先发10 02 00 5C 5E 16 收到E5

发:68 20 20 68 02 00 7C 32 0100 00 00 00 00 0E 00 05 05 01 12 0A10           02 00 01 00 01 8400 03 20 00 04 00 08 10 bd16

 

3、写V区一个字(双字)

发:68 21 21 68 02 00 7C32 01 00 00 00 00 00 0E 00 06 05 01 12 0A 10           04 00 01 00 01 84 00 03 20 00 04 0010ab cd 30 16

发:68 23 23 68 02 00 7C32 01 00 00 00 00 00 0E 00 08 05 01 12 0A 10           06 00 01 00 01 84 00 03 20 00 04 0020ab cd ef fe 31 16

 

 

读指令:先发读指令,后发10 02 005C 5E 16

1、读取数据(例子读取VW10的值,值为FF FF

先发读取命令:

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10             02 00 02 0001 84 00 00 50 B9 16  (红色或者改为04 00 01 00 校验也得改)

回复 E5

然后发送 10 02 00 5C 5E 16

收到数据:

68 17 17 68 00 02 08 32 03 00 0000 00 00 02 00 0600 00 04 01 FF0400 10 FF FF 5D 16

 

22

23

24

25

26

27

28

29

30

31

32

DU

FCS

DE

读取长度

数据个数

存储器类型

偏移量

校验码

结束符

02

00

08

00

00

03

00

05

E0

D2

16

读指令的前21位都是相同的。读取长度,数据个数,存储类型,偏移量都与写指令里面的定义一样。

 

收到数据中的

16位:05表示收到数据用一个字节存储,可能是PLC位,也可能是一个字节;06表示用两个字节存储,即一个字;08双字;0C表示8个字节。

22位:数据形式,03表示位;04表示其他。(主要针对C,T可能是位也可能是计数值,计数时间)

24位:表示读取数值的位数。01表示一位;08八位;10十六位;20三十二位。

25位之后几位:要读取的数值。

 

 

若回复F9(会产生不同结果,但接受值不变)

然后发送 10 02 00 5C 5E 16

收到数据:(关闭串口再打开的不同结果)

DA A1 21 1B 90 32 61 66 40 40 8000 00 00 02 00 06 00 00 04 01 FF 0400 10FF FF 5D 16

B4 A1 21 1B 10 30 61 66 40 80 80 00 00 00 02 00 06 00 00 04 01 FF 04 00 10FF FF 5D 16

68 17 17 68 00 02 08 32 03 00 0000 00 00 02 00 06 00 00 04 01 FF 0400 10 FF FF 5D 16

 

4、读取VB10

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10             02 00 01 00 01 84 00 00 50 B8 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 0400 08FF 55 16

 

5、读取VD10

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 06 00 01 00 01 84 00 00 50 BC 16

68 19 19 68 00 02 08 32 03 00 0000 00 00 02 00 08 00 00 04 01 FF 0400 20FF FF 00 00 6F 16

 

6、读取VB10后面的8个字节

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 02 00 08 00 01 8400 00 50 Bf 16

68 1D 1D 68 00 02 08 32 03 00 0000 00 00 02 00 0C 00 00 04 01 FF 04 00 40FF FF 00 00 00 00 00 00 93 16

 

7、读取V10.0

68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 01 8400 00 50 B7 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF03 00 01 01 4F 16

 

4、读取Q0.1

发送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 00 8200 00 01 65 16

回复:E5

然后发送 10 02 00 5C 5E 16

收到数据:

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 01 004E 16                                              Q0.10

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 0101 4F 16                                              Q0.11

5、读取Q1.3

发送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 00 8200 00 0B 65 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 01 004E 16

6、读取M0.0

发送:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 120A 10 01 00 01 00 00 8300 00 00 65 16

68 16 16 68 00 02 08 32 03 00 0000 00 00 02 00 05 00 00 04 01 FF 03 00 01 00 4E 16

  回复 引用 举报
AutoCtrl888 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 13:11:57 11楼
 

http://blog.sina.com.cn.liamegan.com/s/blog_16d7d3ecb0102x1z5.html

  回复 引用 举报
Smile-lyc 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 09:25:11 12楼
 

楼主精神可嘉    点赞

  回复 引用 举报
zhyi0214 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 12:41:18 13楼
 

感谢楼主,提问过程中学到新知识,并能及时分享给大家,点赞!

  回复 引用 举报
鸡毛信 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 13:54:51 14楼
 

谁手头有比较系统的关于C++的视频或课件资料呢,感谢!

  回复 引用 举报
zhzhang9756 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 14:57:30 15楼
 

回复内容:

对: AutoCtrl888 http://blog.sina.com.cn.liamegan.com/s/b... 内容的回复!

 非常感谢分享,很好的资料。


另,我试了 WinS7_PPI.DLL 未提供下载链接,请问您那有吗?有请发一份给我,谢谢。zhzhang9756@aliyun.com

  回复 引用 举报
99 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 14:44:48 16楼
 

一脸懵逼的,好牛逼!虽然看不懂,还是必须赞一个!

  回复 引用 举报
chenchunguo0326 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 11:31:40 17楼
 

牛逼啊!!!!!!!!!!!!!

  回复 引用 举报
zdd972958711 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 11:20:52 18楼
 


引用 CZ198841 的回复内容: 不是PPI吧?应该是使用自由口通信吧?我就用CBC实现过


  回复 引用 举报
ccwexf 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 10:56:18 19楼
 

协议不重要,这个问题是使用高级语言对位进行操作的问题。对位进行操作一般的高级语言中没有响应的操作命令。可以使用比如字节对第5位置1的话,用或操作就可以了,想让哪位置1的话就或1操作就行。置0操作就用与操作,希望将哪位为0就用与0来实现,比如想要第4位为0,与一个2#11101111就可以实现了。

  回复 引用 举报
qqpwpeng 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 11:56:40 20楼
 

一脸懵逼的,好牛逼!虽然看不懂,还是必须赞一个!

  回复 引用 举报
亲爱的,对不起 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 22:17:47 21楼
 

这个问题非常好,值得学习

  回复 引用 举报
zyuanlong11 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 10:36:14 22楼
 

顶111111111

  回复 引用 举报
wokkk777f 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 12:26:26 23楼
 

学习学习,看看大神们都怎么做。

  回复 引用 举报
迅景科技 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 11:27:49 24楼
 

谢谢你,分享下你的好东西,学习学习好东西

  回复 引用 举报
熊熊548 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 09:29:52 25楼
 

这个不错,对于我们菜鸟很有帮助

  回复 引用 举报
gmb 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 14:54:26 26楼
 

感谢楼主的分享!

  回复 引用 举报
没有积分 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 16:36:54 27楼
 

可以的,可以的,楼主很有想法嘛,厉害的

  回复 引用 举报
沉梦昂志一 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 17:02:14 28楼
 

大哥,小弟也想学西门子通讯这一块的编程知识,给介绍下学习方法吧!

  回复 引用 举报
kellychenjf000 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 07:52:47 29楼
 

自由口通信!用PPI 干什么啊 …………

  回复 引用 举报
熊熊548 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 11:59:59 30楼
 

牛逼,学习一下,收藏了

  回复 引用 举报
嘿丶好玩 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 23:37:38 31楼
 

悄悄的学习中

  回复 引用 举报
CHNlyt 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 00:41:17 32楼
 

谢谢楼主,楼主辛苦了

  回复 引用 举报
-K 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 16:10:01 33楼
 

楼主强大 新人学习学习  谢谢楼主

  回复 引用 举报
你懂的 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 11:10:48 34楼
 

学习学习下

  回复 引用 举报
半成品 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 14:19:27 35楼
 


引用 CHNlyt 的回复内容: 谢谢楼主,楼主辛苦了


  回复 引用 举报
HJ小杰 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 09:30:52 36楼
 

不错的东西,支持一下顶

  回复 引用 举报
hlpro 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 18:14:48 37楼
 

很不错, 谢谢楼主,楼主辛苦了

  回复 引用 举报
KBS 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 17:33:57 38楼
 

迷茫呀,刚学习这个,真是不懂的说

  回复 引用 举报
i小六 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 10:51:07 39楼
 

感谢分享,谢谢!很有帮助!!

  回复 引用 举报
liber798 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 09:06:47 40楼
 

10楼大神,赞一个,很详细。

  回复 引用 举报
春华 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 09:48:25 41楼
 

10楼大神,赞一个,很详细。

  回复 引用 举报
国清才子贵 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 10:45:47 42楼
 

谢谢分享,学习一下。

  回复 引用 举报
小狼1225 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 15:38:36 43楼
  好东西,顶一个~~
  回复 引用 举报
09lxy 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 22:39:12 44楼
  自由口通讯的都是大神
  回复 引用 举报
凄凄切切去 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 19:26:44 45楼
  好帖子,学习了
  回复 引用 举报
追梦的 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 22:55:18 46楼
 

看看,看看,



  回复 引用 举报
gk2017 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 22:34:25 47楼
 

学习了,感谢楼主

  回复 引用 举报
54诛仙 个人主页 给TA发消息 加TA为好友 发表于:2018-07-23 08:28:26 48楼
 

谢谢分享,顶楼主。

  回复 引用 举报
?
相关主题
周点击排行
周回复排行
    最新求助
      Advertisement Advertisement
      ?
      ?
      dafa888bet经典版 e尊国际线上娱乐 立即博线上娱乐 百乐门棋牌官网 2018澳门葡京赌侠诗
      现金网上电玩捕鱼 凯旋门娱乐网址 威尼斯人 欧洲娱乐 威尼斯人线上娱乐场官网
      澳门金沙官方网站 新金沙注册网 永利注册送28 澳门银河注册送300 广发国际娱乐城
      澳门黄金城娱乐 澳门威尼斯人网站多少 宝马会上网导航 葡京赌侠诗全年资料 上葡京网