"),t},c0=n=>{var o;let t=Array.from(n.getElementsByTagName("ul")),e=Array.from(n.getElementsByTagName("ol")),i=t.concat(e);i.forEach(a=>{a.parentElement.tagName==="LI"&&a.parentElement.replaceWith(a),a.previousElementSibling&&a.previousElementSibling.tagName==="LI"&&a.previousElementSibling.appendChild(a)});for(let a of i){let s=a.parentElement;(s==null?void 0:s.tagName)==="DIV"&&((o=s==null?void 0:s.parentElement)==null?void 0:o.tagName)==="UL"&&xu(s),((s==null?void 0:s.tagName)==="UL"||(s==null?void 0:s.tagName)==="OL")&&(s==null?void 0:s.childNodes.length)===1&&xu(s)}let r=Array.from(n.getElementsByTagName("li"));for(let a of r){let s=a.firstElementChild;if(s&&s.tagName==="DIV"){let l=Array.from(s.childNodes);s.replaceWith(...l)}}return n},vu=(n,{htmlContent:t})=>{let e=t.replace(/]*>/,"").replace(/(]*)\/>/,"$1>").replace(//g,""),i=new DOMParser().parseFromString(l0(e),"text/html").getElementsByTagName("en-note").item(0),r=Er(n).turndown(s0(c0(i))),o=new RegExp("","g");return r=r.replace(o,""),r&&r!=="undefined"?{content:r}:{content:""}};var df=rs(require("crypto"));var yt=require("obsidian");var Eu=(n,t)=>({createdAt:p0(n),updatedAt:u0(n),sourceUrl:f0(n),location:d0(n),reminderTime:m0(n),reminderOrder:h0(n),reminderDoneTime:g0(n),notebookName:t});var p0=n=>!B.skipCreationTime&&n.created?(0,yt.moment)(n.created).format(B.dateFormat):"",u0=n=>!B.skipUpdateTime&&n.updated?(0,yt.moment)(n.updated).format(B.dateFormat):"",f0=n=>!B.skipSourceUrl&&n["note-attributes"]?n["note-attributes"]["source-url"]:"",d0=n=>!B.skipLocation&&n["note-attributes"]&&n["note-attributes"].longitude?`${n["note-attributes"].latitude},${n["note-attributes"].longitude}`:"",m0=n=>!B.skipReminderTime&&n["note-attributes"]&&n["note-attributes"]["reminder-time"]?(0,yt.moment)(n["note-attributes"]["reminder-time"]).format(B.dateFormat):"",h0=n=>!B.skipReminderOrder&&n["note-attributes"]&&n["note-attributes"]["reminder-order"]?n["note-attributes"]["reminder-order"]:"",g0=n=>!B.skipReminderDoneTime&&n["note-attributes"]&&n["note-attributes"]["reminder-done-time"]?(0,yt.moment)(n["note-attributes"]["reminder-done-time"]).format(B.dateFormat):"",_u=n=>({tags:y0(n)}),y0=n=>{if(!B.skipTags&&n.tag){let t=Array.isArray(n.tag)?n.tag:[n.tag],e=B.nestedTags;return t.map(r=>{let o=r.toString().replace(/^#/,"");e&&(o=o.replace(new RegExp(Sn(e.separatorInEN),"g"),e.replaceSeparatorWith));let a=e&&e.replaceSpaceWith||"-";return o=o.replace(/ /g,a),`${B.useHashTags?"#":""}${o}`}).join(" ")}return""},Pa;try{Pa=window.require("btime")}catch(n){}var Ar=(n,t)=>{let e=(0,yt.moment)(t.created).valueOf();e>0&&Pa&&Pa.btime(n,e);let r=(0,yt.moment)(t.updated).valueOf()/1e3;try{K.utimesSync(n,r,r)}catch(o){}},Tu=n=>n["resource-attributes"]&&n["resource-attributes"].timestamp?(0,yt.moment)(n["resource-attributes"].timestamp):(0,yt.moment)();var Au=(n,t,e)=>{let i=n.lastIndexOf(t);return i<0?n:n.substring(0,i)+e+n.substring(i+t.length)};var Ae={mdPath:"",resourcePath:""},Nr=249,ku=(n,t)=>La(n,t).replace(/\s/g,"_"),Nu=(n,t)=>{if(n.length<=11)throw Error("FATAL: note folder directory path exceeds the OS limitation. Please pick a destination closer to the root folder.");return`${$a()}${q.sep}${n}`.length{let r=fe.getInstance().getNoteIdNameMapByNoteTitle(Rn(n.title))[0]||{uniqueEnd:xn(6)};if(t.length<=11)throw Error("FATAL: note folder directory path exceeds the OS limitation. Please pick a destination closer to the root folder.");return`${e.slice(0,Nr-11)}_${r.uniqueEnd}.md`},x0=(n,t,e)=>{let i=au(n,t,e),r=`${n}${q.sep}${Rn(i)}`;return r.lengthx0(Ae.mdPath,n,"md");var w0=n=>{K.existsSync(n)&&(K.rmSync?K.rmSync(n,{recursive:!0,force:!0}):K.rmdirSync(n,{recursive:!0})),K.mkdirSync(n)},Ru=n=>{let t=`${q.sep}${B.resourcesDir}`;return B.haveGlobalResources?`..${t}`:B.haveEnexLevelResources?`.${t}`:`.${t}${q.sep}${ku(Ae.mdPath,n)}.resources`},Ma=n=>B.haveGlobalResources?q.resolve(Ae.resourcePath,"..","..",B.resourcesDir):B.haveEnexLevelResources?Ae.resourcePath:`${Ae.resourcePath}${q.sep}${ku(Ae.mdPath,n)}.resources`,kr=new Map,Ou=n=>{let t=Ma(n);kr.has(t)||kr.set(t,0);let e=kr.get(t)||0;(B.haveEnexLevelResources||B.haveGlobalResources)&&e>=1||(w0(t),kr.set(t,e+1))},Du=n=>{let t=n.split("@@@"),e=t.pop();return e||(e=n),{notebookName:e,notebookFolderNames:t}},Cu=n=>{if(!(n instanceof Me))throw new Error("Evernote import currently only works on desktop");let{notebookName:t}=Du(n.basename);return{fullpath:Au(n.fullpath,n.basename,t||n.basename),basename:t}},Iu=(n,t)=>{let{notebookFolderNames:e}=Du(n.basename);return K.mkdirSync(q.join(t.outputDir,...e),{recursive:!0}),[t.outputDir,...e].join(t.pathSeparator)},Fu=(n,t)=>{let e=n.basename;Pu(e,t)},Lu=(n,t)=>{let e=n.basename;Pu(e,t)},Pu=(n,t)=>{let e=q.isAbsolute(t.outputDir)?t.outputDir:`${process.cwd()}${q.sep}${t.outputDir}`;Ae.mdPath=`${e}${q.sep}`,Ae.resourcePath=`${e}${q.sep}${t.resourcesDir}`,t.skipEnexFileNameFromOutputPath||(Ae.mdPath=`${Ae.mdPath}${n}`,Ae.resourcePath=`${e}${q.sep}${n}${q.sep}${t.resourcesDir}`),K.mkdirSync(Ae.mdPath,{recursive:!0}),!t.haveEnexLevelResources&&!t.haveGlobalResources&&K.mkdirSync(Ae.resourcePath,{recursive:!0}),console.log(`path ${Ae.mdPath} created`)},$a=()=>Ae.mdPath;var Mu=n=>!!n.resource,$u=n=>n["note-attributes"]&&(n["note-attributes"]["source-application"]==="webclipper.evernote"||n["note-attributes"].source==="web.clip7");var Ba={};Se(Ba,{CONTENT_PLACEHOLDER:()=>v0,END_BLOCK:()=>_0,START_BLOCK:()=>E0});var v0="{content}",E0="{content-block}",_0="{end-content-block}";var Pt=({template:n,check:t,startBlockPlaceholder:e,endBlockPlaceholder:i,valuePlaceholder:r,value:o})=>{if(o&&t())return n.replace(new RegExp(`${e}`,"g"),"").replace(new RegExp(`${i}`,"g"),"").replace(new RegExp(`${r}`,"g"),o);let a=`${e}([\\d\\D])(?:.|(\r
+|\r|
+))*?(?=${i})${i}`;return n.replace(new RegExp(a,"g"),"")};var Mt=(n,t,e,i)=>({template:n,check:t,startBlockPlaceholder:e.START_BLOCK,endBlockPlaceholder:e.END_BLOCK,valuePlaceholder:e.CONTENT_PLACEHOLDER,value:i});var Bu=(n,t,e)=>{let i=Mt(t,e,Ba,n.content);return Pt(i)};var gi={};Se(gi,{CONTENT_PLACEHOLDER:()=>T0,END_BLOCK:()=>k0,START_BLOCK:()=>A0});var T0="{tags}",A0="{tags-block}",k0="{end-tags-block}";var Uu=(n,t,e)=>{let i=Mt(t,e,gi,n.tags);return Pt(i)};var Ua={};Se(Ua,{CONTENT_PLACEHOLDER:()=>N0,END_BLOCK:()=>R0,START_BLOCK:()=>S0});var N0="{title}",S0="{title-block}",R0="{end-title-block}";var ju=(n,t,e)=>{let i=Mt(t,e,Ua,n.title);return Pt(i)};var rn={};Se(rn,{CONTENT_PLACEHOLDER:()=>O0,END_BLOCK:()=>C0,START_BLOCK:()=>D0});var O0="{created-at}",D0="{created-at-block}",C0="{end-created-at-block}";var Ee=(n,t,e)=>n.replace(new RegExp(`${t.CONTENT_PLACEHOLDER}`,"g"),e||"").replace(new RegExp(`${t.START_BLOCK}`,"g"),"").replace(new RegExp(`${t.END_BLOCK}`,"g"),"");var Hu=(n,t)=>Ee(t,rn,n.createdAt);var on={};Se(on,{CONTENT_PLACEHOLDER:()=>I0,END_BLOCK:()=>L0,START_BLOCK:()=>F0});var I0="{updated-at}",F0="{updated-at-block}",L0="{end-updated-at-block}";var qu=(n,t)=>Ee(t,on,n.updatedAt);var an={};Se(an,{CONTENT_PLACEHOLDER:()=>P0,END_BLOCK:()=>$0,START_BLOCK:()=>M0});var P0="{source-url}",M0="{source-url-block}",$0="{end-source-url-block}";var Wu=(n,t)=>Ee(t,an,n.sourceUrl);var sn={};Se(sn,{CONTENT_PLACEHOLDER:()=>B0,END_BLOCK:()=>j0,START_BLOCK:()=>U0});var B0="{location}",U0="{location-block}",j0="{end-location-block}";var Zu=(n,t)=>Ee(t,sn,n.location);var ln={};Se(ln,{CONTENT_PLACEHOLDER:()=>H0,END_BLOCK:()=>W0,START_BLOCK:()=>q0});var H0="{notebook}",q0="{notebook-block}",W0="{end-notebook-block}";var Yu=(n,t)=>Ee(t,ln,n.notebookName);var On={};Se(On,{CONTENT_PLACEHOLDER:()=>Z0,END_BLOCK:()=>z0,START_BLOCK:()=>Y0});var Z0="{reminder-time}",Y0="{reminder-time-block}",z0="{end-reminder-time-block}";var zu=(n,t)=>Ee(t,On,n.reminderTime);var Dn={};Se(Dn,{CONTENT_PLACEHOLDER:()=>G0,END_BLOCK:()=>K0,START_BLOCK:()=>V0});var G0="{reminder-order}",V0="{reminder-order-block}",K0="{end-reminder-order-block}";var Gu=(n,t)=>Ee(t,Dn,n.reminderOrder);var Cn={};Se(Cn,{CONTENT_PLACEHOLDER:()=>X0,END_BLOCK:()=>Q0,START_BLOCK:()=>J0});var X0="{reminder-done-time}",J0="{reminder-done-time-block}",Q0="{end-reminder-done-time-block}";var Vu=(n,t)=>Ee(t,Cn,n.reminderDoneTime);var yi={};Se(yi,{CONTENT_PLACEHOLDER:()=>ey,END_BLOCK:()=>ny,START_BLOCK:()=>ty});var ey="{tags-yaml-list}",ty="{tags-yaml-list-block}",ny="{end-tags-yaml-list-block}";var Ku=(n,t,e)=>{let i;n.tags&&(i=`
+`+n.tags.split(" ").map(o=>` - ${o.replace(/^#/,"")}`).join(`
+`));let r=Mt(t,e,yi,i);return Pt(r)};var ja="{metadata-block}",Ha="{end-metadata-block}";var Xu=`\r?
+?`;var de=(n,t)=>n.replace(new RegExp(`${t.START_BLOCK}(?<=${t.START_BLOCK})(.*)(?=${t.END_BLOCK})${t.END_BLOCK}${Xu}`,"g"),"");var Ju=n=>de(n,rn);var Qu=n=>de(n,on);var ef=n=>de(n,an);var tf=n=>de(n,ln);var nf=n=>de(n,sn);var Sr={};Se(Sr,{CONTENT_PLACEHOLDER:()=>ry,END_BLOCK:()=>ay,START_BLOCK:()=>oy});var ry="{link-to-original}",oy="{link-to-original-block}",ay="{end-link-to-original-block}";var rf=n=>de(n,Sr);var of=n=>de(n,On);var af=n=>de(n,Cn);var sf=n=>de(n,Dn);var lf=(n,t)=>{let e=t.currentTemplate;return e=ju(n,e,()=>n.title),e=Uu(n,e,()=>!t.skipTags),e=Ku(n,e,()=>!t.skipTags),e=Bu(n,e,()=>n.content),e=rf(e),e=!t.skipCreationTime&&n.createdAt?Hu(n,e):Ju(e),e=!t.skipUpdateTime&&n.updatedAt?qu(n,e):Qu(e),e=!t.skipSourceUrl&&n.sourceUrl?Wu(n,e):ef(e),e=!t.skipLocation&&n.location?Zu(n,e):nf(e),e=t.isNotebookNameNeeded&&n.notebookName?Yu(n,e):tf(e),e=!t.skipReminderTime&&n.reminderTime?zu(n,e):of(e),e=!t.skipReminderOrder&&n.reminderOrder?Gu(n,e):sf(e),e=!t.skipReminderDoneTime&&n.reminderDoneTime?Vu(n,e):af(e),e=e.replace(ja,"").replace(Ha,""),e};var cf=(n,t,e)=>{try{K.writeFileSync(n,t),Ar(n,e)}catch(i){throw console.error("Cannot write file ",i),i}};var pf=(n,t)=>{let e=Su(t);fe.getInstance().setCurrentNotePath(e),cf(e,n,t),console.log(`Note saved to ${e}`)};var mf=n=>{let t=new RegExp(`\\${q.sep}`,"g"),e=Ru(n).replace(t,B.pathSeparator||"/");return{absoluteResourceWorkDir:Ma(n),relativeResourceWorkDir:e}},hf=n=>{let t={},e=n.content,{absoluteResourceWorkDir:i,relativeResourceWorkDir:r}=mf(n);if(console.log(`relative resource work dir: ${r}`),console.log(`absolute resource work dir: ${i}`),Ou(n),Array.isArray(n.resource))for(let o of n.resource)t={...t,...ff(i,o)};else t={...t,...ff(i,n.resource)};for(let o of Object.keys(t))e=sy(e,t,o,r);return e},sy=(n,t,e,i)=>{let r=`${i}${B.pathSeparator}${t[e].fileName.replace(/ /g," ")}`;console.log(`mediaReference src ${r} added`);let o,a=`]*)hash="${e}".([^>]*)>`,s=new RegExp(a,"g"),l=n.match(s),c=l&&l.length>0&&l[0].split("type=");if(c&&c.length>1&&c[1].startsWith('"image')){let p=l[0].match(/width="(\w+)"/),m=p?` width="${p[1]}"`:"",y=l[0].match(/height="(\w+)"/),w=y?` height="${y[1]}"`:"";o=n.replace(s,``)}else o=n.replace(s,`${t[e].fileName}`);return o},ff=(n,t)=>{let e={},i=t.data.$text,r=Tu(t),a=ou(n,t).fileName,s=`${n}${q.sep}${a}`;console.log(t),console.log(i);let l=Buffer.from(i,"base64");K.writeFileSync(s,l);let c=r.valueOf()/1e3;try{K.utimesSync(s,c,c)}catch(p){}if(t.recognition&&a){let p=t.recognition.match(/[a-f0-9]{32}/);console.log(`resource ${a} added with hash ${p}`),e[p]={fileName:a,alreadyUsed:!1}}else{let p=df.default.createHash("md5");p.update(l);let m=p.digest("hex");e[m]={fileName:a,alreadyUsed:!1}}return e},gf=(n,t)=>{if(t.indexOf('src="data:')<0)return t;let{absoluteResourceWorkDir:e,relativeResourceWorkDir:i}=mf(n);return K.mkdirSync(e,{recursive:!0}),t.replace(/src="data:([^;,]*)(;base64)?,([^"]*)"/g,(r,o,a,s)=>{let l=ly(o,a===";base64",s,e,n);return`src="${`${i}${B.pathSeparator}${l}`}"`})},ly=(n,t,e,i,r)=>{let o="embedded",a=cy(n)||".dat",s=hi(i,o),l=s<1?`${o}.${a}`:`${o}.${s}.${a}`,c=`${i}${q.sep}${l}`;return t||(e=decodeURIComponent(e)),K.writeFileSync(c,e,t?"base64":void 0),Ar(c,r),console.log(`data url resource ${l} added`),l},cy=n=>n.split("/").pop().split("+")[0];var yf=(n,t)=>{let e=new Date;fe.getInstance().setCurrentNoteName(n.title),Array.isArray(n.content)&&(n.content=n.content.join(""));let r={title:n.title,content:n.content,htmlContent:n.content,originalContent:n.content};console.log(`Converting for note "${r.title}" started at ${e}...`);try{Mu(n)&&(r.htmlContent=hf(n)),r.htmlContent=gf(n,r.htmlContent),r={...r,...vu(B,r)},r={...r,...Eu(n,t)},r={...r,..._u(n)};let o=lf(r,B);pf(o,n)}catch(o){throw console.error(`Failed to convert note: ${r.title}`,o),o}finally{let o=new Date,a=(o.getTime()-e.getTime())/1e3;console.log(`Conversion for note "${r.title}" finished at ${o}. Took ${a} seconds`)}};var wf=require("obsidian");var bf=n=>n.taskstatus==="open"?_r:Tr;var py="\u{1F53C}",uy="\u{1F53D}",fy="\u{1F4C5}",dy="\u23F3",vf=(n,t)=>{let e=bf(n),i=n.title?` ${n.title}`:"",r=B.obsidianTaskTag!==""?` ${B.obsidianTaskTag}`:"",o=n.duedate&&!isNaN(n.duedate.getTime())?` ${fy} ${xf(n.duedate)}`:"",a=n.reminderdate?` ${dy} ${xf(n.reminderdate)}`:"",s=n.taskflag?` ${py}`:` ${uy}`;return`${e}${r}${i}${o}${a}${s}`},xf=n=>(0,wf.moment)(n).format("YYYY-MM-DD").toString();var Wa=(n,t,e)=>{let i=K.readdirSync(n);return t=t||[],i.forEach(r=>{K.statSync(`${n}${q.sep}${r}`).isDirectory()?t=Wa(`${n}${q.sep}${r}`,t,e):(e&&q.extname(r)==`.${e}`||!e)&&t.push(q.join(n,"/",r))}),t};var Ef=(n,t)=>{let i=fe.getInstance().getAllNoteIdNameMap(),r=Object.entries(i);if(r.length===0)return;console.log("About to update links...");let o=[];for(let a of t)Wa(a,o,"");for(let a of t){console.log(`Notebook: ${a}`);let l=K.readdirSync(a).filter(c=>q.extname(c).toLowerCase()===".md");console.log(`${l.length} files to check for links`);for(let c of l){let p=q.join(a,c),m=K.readFileSync(p,"utf8"),y=m;for(let[w,E]of r){let d=E.uniqueEnd,f=E.title;o.find(D=>D.includes(d))&&(f=Nu(f,d));let g=E.notebookName,v=n.urlEncodeFileNamesAndLinks?encodeURI(f):f,_=v;g&&!a.endsWith(g)&&(_=`${g}/${v}`);let A=new RegExp(Sn(w),"g");y=y.replace(A,_)}m!==y&&(console.log(`File written: ${p}`),K.writeFileSync(p,y))}}console.log("Link update complete.")};var _f=n=>cn(rn,n);var Tf=n=>cn(sn,n),Af=n=>cn(ln,n);var kf=n=>cn(an,n),Nf=n=>cn(gi,n)||cn(yi,n);var Sf=n=>cn(on,n),cn=(n,t)=>t.includes(n.START_BLOCK)&&t.includes(n.CONTENT_PLACEHOLDER)&&t.includes(n.END_BLOCK);var Rf=`---
+`,my=`{source-url-block}source: {source-url}{end-source-url-block}
+`,hy=`{tags-yaml-list-block}
+tags: {tags-yaml-list}
+
+{end-tags-yaml-list-block}`,gy=`{content-block}{content}{end-content-block}
+`,Of=Rf+hy+my+Rf+gy;var Cy=Bf.Platform.isDesktopApp?$f():null,Dr={enexSources:[],currentTemplate:"",outputDir:"./mdNotes",isMetadataNeeded:!1,isNotebookNameNeeded:!1,isZettelkastenNeeded:!1,useZettelIdAsFilename:!1,plainTextNotesOnly:!1,skipWebClips:!1,useHashTags:!0,nestedTags:{separatorInEN:"_",replaceSeparatorWith:"/",replaceSpaceWith:"-"},obsidianTaskTag:"",urlEncodeFileNamesAndLinks:!1,sanitizeResourceNameSpaces:!1,replacementChar:"_",pathSeparator:"/",resourcesDir:"_resources",turndownOptions:{headingStyle:"atx"}},Iy="@@@",B={...Dr};function Fy(n){return n==null?n:JSON.parse(JSON.stringify(n))}function Uf(n,...t){for(let e of t)for(let i of Object.keys(e)){let r=e[i],o=n[i];!Array.isArray(r)&&typeof r=="object"&&!Array.isArray(o)&&typeof o=="object"?n[i]=Uf({},o,r):n[i]=Fy(r)}return n}var Ly=n=>{B=Uf({},Dr,n);let t=B.templateFile?K.readFileSync(B.templateFile,"utf-8"):Of;t=B.currentTemplate?B.currentTemplate:t,B.skipCreationTime=!_f(t),B.skipLocation=!Tf(t),B.skipSourceUrl=!kf(t),B.skipTags=!Nf(t),B.skipUpdateTime=!Sf(t),B.isNotebookNameNeeded=Af(t),B.currentTemplate=t,console.log(`Current config is: ${JSON.stringify(B,null,4)}`),console.log(`Path separator:${q.sep}`)},Py=async(n,t,e)=>{if(!(t instanceof Me))throw new Error("Evernote import currently only works on desktop");let i=fe.getInstance();e.status("Processing "+t.name),console.log(`Getting stream from ${t}`);let r=t.createReadStream(),o={},a=i.getCurrentNotebookName();return new Promise((s,l)=>{let c=y=>(e.reportFailed(i.getCurrentNotebookFullpath(),y),l(y)),p=Cy(r),m=null;p.on("tag:note-attributes",y=>{m=y}),p.on("tag:note",y=>{if(e.isCancelled()){r.close();return}if(n.skipWebClips&&$u(y))e.reportSkipped(y.title);else{e.status("Importing note "+y.title),m&&(y["note-attributes"]=m);try{yf(y,a),e.reportNoteSuccess(a+"/"+y.title)}catch(E){return e.reportFailed(y.title||t,E),s()}}m=null;let w=i.getCurrentNotePath();if(w)for(let E of Object.keys(o)){let d=`${E}`,f=K.readFileSync(w,"utf8"),g=new Map([...o[E]].sort()),v=f.replace(d,[...g.values()].join(`
+`));K.writeFileSync(w,v)}}),p.on("tag:task",y=>{let w=zp(y);o[w.taskgroupnotelevelid]||(o[w.taskgroupnotelevelid]=new Map),o[w.taskgroupnotelevelid].set(w.sortweight,vf(w,a))}),p.on("end",s),p.on("error",c),r.on("error",c)})};async function jf(n,t){Ly(n);let e=[],i=n.outputDir;for(let r of n.enexSources){if(t.isCancelled())return;let o,a=fe.getInstance();r.basename.includes(Iy)?(n.outputDir=Iu(r,n),o=Cu(r),Lu(o,n),a.setCurrentNotebookName(o.basename),a.setCurrentNotebookFullpath(o.fullpath)):(Fu(r,n),a.setCurrentNotebookName(r.basename),a.setCurrentNotebookFullpath(r.fullpath)),await Py(n,r,t),e.push($a()),n.outputDir=i}t.isCancelled()||await Ef(n,e)}var Cr=class extends ce{init(){this.addFileChooserSetting("Evernote",["enex"],!0),this.addOutputLocationSetting("Evernote")}async import(t){let{files:e}=this;if(e.length===0){new xi.Notice("Please pick at least one file to import.");return}let i=await this.getOutputFolder();if(!i){new xi.Notice("Please select a location to export to.");return}let{app:r}=this,o=r.vault.adapter;if(!(o instanceof xi.FileSystemAdapter))return;let a={...Dr,enexSources:e,outputDir:q.join(o.getBasePath(),i.path)};await jf(a,t)}};var ke=require("obsidian");var Ir=class extends ce{init(){this.addFileChooserSetting("HTML",["htm","html"],!0),this.addAttachmentSizeLimit(0),this.addMinimumImageSize(65),this.addOutputLocationSetting("HTML import")}addAttachmentSizeLimit(e){this.attachmentSizeLimit=e*10**6,new ke.Setting(this.modal.contentEl).setName("Attachment size limit (MB)").setDesc("Set 0 to disable.").addText(i=>i.then(({inputEl:r})=>{r.type="number",r.step="0.1"}).setValue(e.toString()).onChange(r=>{let o=["+","-"].includes(r)?0:Number(r);if(Number.isNaN(o)||o<0){i.setValue((this.attachmentSizeLimit/10**6).toString());return}this.attachmentSizeLimit=o*10**6}))}addMinimumImageSize(e){this.minimumImageSize=e,new ke.Setting(this.modal.contentEl).setName("Minimum image size (px)").setDesc("Set 0 to disable.").addText(i=>i.then(({inputEl:r})=>r.type="number").setValue(e.toString()).onChange(r=>{let o=["+","-"].includes(r)?0:Number(r);if(!Number.isInteger(o)||o<0){i.setValue(this.minimumImageSize.toString());return}this.minimumImageSize=o}))}async import(e){let{files:i}=this;if(i.length===0){new ke.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new ke.Notice("Please select a location to export to.");return}let o=new Map;e.reportProgress(0,i.length);for(let c=0;c{s=c});a.onCleanCache(async()=>{for(let[c,{file:p,tFile:m}]of o){if(e.isCancelled())break;try{let y=await this.app.vault.cachedRead(m),w=a.computeMetadataAsync?await a.computeMetadataAsync(Oo(y)):a.getFileCache(m);if(!w)continue;let E=[];if(w.links)for(let{link:d,position:f,displayText:g}of w.links){let{path:v,subpath:_}=(0,ke.parseLinktext)(d),A;if(Jn){let T=new URL(encodeURI(v),c);T.hash="",T.search="",A=decodeURIComponent(T.href)}else A=re(v.replace(/#/gu,"%23")).name;let D=o.get(A);if(D){let T=this.app.fileManager.generateMarkdownLink(D.tFile,m.path,_,g);E.push({from:f.start.offset,to:f.end.offset,text:T})}}E.sort((d,f)=>f.from-d.from);for(let d of E)y=y.substring(0,d.from)+d.text+y.substring(d.to);await this.vault.modify(m,y)}catch(y){e.reportFailed(p.fullpath,y)}}s()}),await l}async processFile(e,i,r){e.status("Processing "+r.name);try{let o=await r.readText(),a=ft(o);My(a);let s=r instanceof Me?Jn.pathToFileURL(r.filepath):void 0,l=new Map,c=new Map;for(let y of a.findAll("img, audio, video")){if(e.isCancelled())return;let w=y.getAttribute("src");if(w)try{let E=new URL(w.startsWith("//")?`https:${w}`:w,s),d=E.href,f=l.get(d);l.has(d)||(e.status("Downloading attachment for "+r.name),f=await this.downloadAttachment(i,y,E),l.set(d,f),f?(c.set(f.path,f),e.reportAttachmentSuccess(f.name)):e.reportSkipped(w)),f&&(y.setAttribute("src",f.path.replace(/ /g,"%20")),y instanceof HTMLImageElement||y.replaceWith(createEl("img",{attr:{src:f.path.replace(/ /g,"%20"),alt:y.getAttr("alt")}})))}catch(E){e.reportFailed(w,E)}}let p=(0,ke.htmlToMarkdown)(a),m=await this.saveAsMarkdownFile(i,r.basename,p);if(!Object.isEmpty(l)){let{metadataCache:y}=this.app,w;y.computeMetadataAsync?w=await y.computeMetadataAsync(Oo(p)):w=await new Promise(d=>{let f=y.getFileCache(m);if(f)return d(f);let g=y.on("changed",(v,_,A)=>{v===m&&(y.offref(g),d(A))})});let E=[];if(w.embeds){for(let{link:d,position:f}of w.embeds)if(c.has(d)){let g=this.app.fileManager.generateMarkdownLink(c.get(d),m.path);E.push({from:f.start.offset,to:f.end.offset,text:g})}}E.sort((d,f)=>f.from-d.from);for(let d of E)p=p.substring(0,d.from)+d.text+p.substring(d.to);await this.vault.modify(m,p)}return e.reportNoteSuccess(r.fullpath),m}catch(o){e.reportFailed(r.fullpath,o)}return null}async downloadAttachment(e,i,r){let o="",a="",s;switch(r.protocol){case"file:":let p=Jn.fileURLToPath(r.href);({basename:o,extension:a}=re(p)),s=Zi(await Pe.readFile(p));break;case"https:":case"http:":let m=await By(r),y=$y(r);o=y.basename,s=m.data,a=vr(m.mime)||y.extension;break;default:throw new Error(r.href)}if(!this.filterAttachmentSize(s)||i instanceof HTMLImageElement&&!await this.filterImageSize(s))return null;if(!a)if(i instanceof HTMLImageElement)a="png";else if(i instanceof HTMLAudioElement)a="mp3";else if(i instanceof HTMLVideoElement)a="mp4";else return null;let l=await this.createFolders((0,ke.normalizePath)(e.path+"/Attachments")),c=await this.vault.getAvailablePath(l.getParentPrefix()+o,a);return await this.vault.createBinary(c,s)}filterAttachmentSize(e){let{byteLength:i}=e;return!this.attachmentSizeLimit||i<=this.attachmentSizeLimit}async filterImageSize(e){if(!this.minimumImageSize)return!0;let i;try{i=await Uy(e)}catch(a){return!0}let{height:r,width:o}=i;return o>=this.minimumImageSize&&r>=this.minimumImageSize}};function Hf(n,t){let e=n.getAttribute(t);e!==null&&n.setAttribute(t,e.replace(/ /gu,"%20"))}function My(n){n.findAll("a").forEach(t=>Hf(t,"href")),n.findAll("audio, img, video").forEach(t=>Hf(t,"src"))}function $y(n){return re((0,ke.normalizePath)(decodeURIComponent(n.pathname)))}async function By(n){var e,i;try{let r=await fetch(n,{mode:"cors",referrerPolicy:"no-referrer"});if(r.ok)return{data:await r.arrayBuffer(),mime:(e=r.headers.get("Content-Type"))!=null?e:""}}catch(r){}let t=await(0,ke.requestUrl)(n.href);return{data:t.arrayBuffer,mime:(i=t.headers["Content-Type"])!=null?i:""}}async function Uy(n){let t=new Image,e=URL.createObjectURL(new Blob([n]));try{return await new Promise((i,r)=>{t.addEventListener("error",({error:o})=>r(o),{once:!0,passive:!0}),t.addEventListener("load",()=>i({height:t.naturalHeight,width:t.naturalWidth}),{once:!0,passive:!0}),t.src=e})}finally{URL.revokeObjectURL(e)}}var Fn=require("obsidian");var jy=/(#[^ ^#]*)/g,Hy=/[\\:*?<>\"|!@#$%^&()+=\`\'~;,.]/g;function za(n){let t=n.replace(Hy,"");return t=t.split(" ").join("-"),isNaN(t[0])||(t="_"+t),t}function Ga(n){return n.replace(jy,t=>"#"+za(t))}function qf(n){return n.charAt(0).toUpperCase()+n.slice(1).toLowerCase()}var qy=["zip"],Wy=["json"],Zy=["html","txt"],Fr=class extends ce{constructor(){super(...arguments);this.importArchived=!1;this.importTrashed=!1}init(){this.addFileChooserSetting("Notes & attachments",[...qy,...Wy,...Ln],!0),this.importArchivedSetting=new Fn.Setting(this.modal.contentEl).setName("Import archived notes").setDesc("If imported, files archived in Google Keep will be tagged as archived.").addToggle(e=>{e.setValue(this.importArchived),e.onChange(async i=>{this.importArchived=i})}),this.importTrashedSetting=new Fn.Setting(this.modal.contentEl).setName("Import deleted notes").setDesc("If imported, files deleted in Google Keep will be tagged as deleted. Deleted notes will only exist in your Google export if deleted recently.").addToggle(e=>{e.setValue(this.importTrashed),e.onChange(async i=>{this.importTrashed=i})}),this.addOutputLocationSetting("Google Keep")}async import(e){let{files:i}=this;if(i.length===0){new Fn.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new Fn.Notice("Please select a location to import your files to.");return}let o=`${r.path}/Assets`;for(let a of i){if(e.isCancelled())return;await this.handleFile(a,r,o,e)}}async handleFile(e,i,r,o){let{fullpath:a,name:s,extension:l}=e;o.status("Processing "+s);try{l==="zip"?await this.readZipEntries(e,i,r,o):l==="json"?await this.importKeepNote(e,i,o):Ln.contains(l)?(o.status("Importing attachment "+s),await this.copyFile(e,r),o.reportAttachmentSuccess(a)):!(e instanceof fi)&&!Zy.contains(l)&&o.reportSkipped(a)}catch(c){o.reportFailed(a,c)}}async readZipEntries(e,i,r,o){await gt(e,async(a,s)=>{for(let l of s){if(o.isCancelled())return;await this.handleFile(l,i,r,o)}})}async importKeepNote(e,i,r){let{fullpath:o,basename:a}=e;r.status("Importing note "+a);let s=await e.readText(),l=JSON.parse(s);if(!l||!l.userEditedTimestampUsec||!l.createdTimestampUsec){r.reportFailed(o,"Invalid Google Keep JSON");return}if(l.isArchived&&!this.importArchived){r.reportSkipped(o,"Archived note");return}if(l.isTrashed&&!this.importTrashed){r.reportSkipped(o,"Deleted note");return}await this.convertKeepJson(l,i,a),r.reportNoteSuccess(o)}async copyFile(e,i){let r=await this.createFolders(i),o=await e.read();await this.vault.createBinary(`${r.path}/${e.name}`,o)}async convertKeepJson(e,i,r){let o=[],a={};if(e.title){let c=e.title.split(`
+`).filter(p=>p!==r);c.length>0&&(a.aliases=c)}let s=[];if(e.color&&e.color!=="DEFAULT"){let c=e.color.toLowerCase();c=qf(c),s.push(`Keep/Color/${c}`)}if(e.isPinned&&s.push("Keep/Pinned"),e.attachments&&s.push("Keep/Attachment"),e.isArchived&&s.push("Keep/Archived"),e.isTrashed&&s.push("Keep/Deleted"),e.labels)for(let c of e.labels)s.push(`Keep/Label/${c.name}`);if(s.length>0&&(a.tags=s.map(c=>za(c))),o.push(Yi(a)),e.textContent&&(o.push(`
+`),o.push(Ga(e.textContent))),e.listContent){let c=[];for(let p of e.listContent){if(!p.text)continue;let m=`- [${p.isChecked?"X":" "}] ${p.text}`;c.push(Ga(m))}o.push(`
+
+`),o.push(c.join(`
+`))}if(e.attachments){o.push(`
+
+`);for(let c of e.attachments)o.push(`![[${c.filePath}]]`)}let l=await this.saveAsMarkdownFile(i,r,o.join(""));await this.vault.append(l,"",{ctime:e.createdTimestampUsec/1e3,mtime:e.userEditedTimestampUsec/1e3})}};var xt=require("obsidian");var Va=require("obsidian");function Wf({info:n,vault:t,targetFolderPath:e,parentsInSubfolders:i}){let r=t.getAllLoadedFiles(),o=new Set,a=new Set(r.map(s=>s.name));i&&zy(n),Yy({info:n,pathDuplicateChecks:o,titleDuplicateChecks:a}),Gy({info:n,loadedFiles:r,titleDuplicateChecks:a,targetFolderPath:e})}function Yy({info:n,pathDuplicateChecks:t,titleDuplicateChecks:e}){for(let i of Object.values(n.idsToFileInfo)){let r=n.getPathForFile(i);if(t.has(`${r}${i.title}`)){let o=2;for(i.title=i.title+" "+o;t.has(`${r}${i.title}`);)o++,i.title=`${i.title.replace(/ \d+$/,"")} ${o}`}e.has(i.title+".md")&&(i.fullLinkPathNeeded=!0),t.add(`${r}${i.title}`),e.add(i.title+".md")}}function zy(n){let t=new Set(Object.values(n.idsToFileInfo).map(e=>e.parentIds).concat(Object.values(n.pathsToAttachmentInfo).map(e=>e.parentIds)).map(e=>e.length>0?e[e.length-1]:""));for(let e of Object.keys(n.idsToFileInfo))t.has(e)&&n.idsToFileInfo[e].parentIds.push(e)}function Gy({info:n,loadedFiles:t,titleDuplicateChecks:e,targetFolderPath:i}){var l;let r=new Set(t.filter(c=>!c.path.endsWith(".md")).map(c=>c.path)),o=n.attachmentPath,a=/^\.\//.test(o),s=(l=o.match(/\.\/(.*)/))==null?void 0:l[1];for(let c of Object.values(n.pathsToAttachmentInfo)){e.has(c.nameWithExtension)&&(c.fullLinkPathNeeded=!0);let p="";if(a?p=(0,Va.normalizePath)(`${i}${n.getPathForFile(c)}${s!=null?s:""}`):p=(0,Va.normalizePath)(o+"/"),p.endsWith("/")||(p+="/"),r.has(p+c.nameWithExtension)){let m=2,{basename:y,extension:w}=re(c.path);for(;r.has(`${p}${y} ${m}.${w}`);)m++;c.nameWithExtension=`${y} ${m}.${w}`}c.targetParentFolder=p,r.add(p+c.nameWithExtension),e.add(c.nameWithExtension)}}var Pn=require("obsidian");var Zf=n=>n.replace(/-/g,"").replace(/[ -]?[a-z0-9]{32}(\.|$)/,"$1"),bt=n=>{var t;return(t=n.replace(/-/g,"").match(/([a-z0-9]{32})(\?|\.|$)/))==null?void 0:t[1]},Ka=n=>{let{parent:t}=re(n);return t.split("/").map(e=>bt(e)).filter(e=>e)};function Xa(n){return n.hour()===0&&n.minute()===0?n.format("YYYY-MM-DD"):n.format("YYYY-MM-DDTHH:mm")}function Yf(n){return n.replace(/^(\.\.\/)+/,"")}function zf(n){let t=/#\d*?(?:[-_/a-z]|[^\x00-\x7F])/gi;if(!t.test(n))return n;let e=n.split(`
+`);for(let i=0;i tbody");if(s){let m=Vf(n,s);nd(n,m,!1),m1(s);for(let y of Array.from(s.rows)){let w=Vy(y);w&&(w.title=="Tags"&&(w.title="tags",typeof w.content=="string"?w.content=w.content.replace(/ /g,"-"):w.content instanceof Array&&(w.content=w.content.map(E=>E.replace(/ /g,"-")))),a[w.title]=w.content)}}o1(r,["strong","em","mark","del"]),n1(r),Xy(r),u1(r),e1(r),p1(r),ad(r),ed(r,"div.indented"),ed(r,"details"),f1(r),td(r,"ul"),td(r,"ol"),d1(r),c1(r),i1(r);let l=(0,Pn.htmlToMarkdown)(r.innerHTML);n.singleLineBreaks&&(l=l.replace(/\n\n(?!>)/g,`
+`)),l=zf(l),l=Ky(l);let c=(p=i.find("p[class*=page-description]"))==null?void 0:p.textContent;return c&&(l=c+`
+
+`+l),Yi(a)+l}var Gf={checkbox:["checkbox"],date:["created_time","last_edited_time","date"],list:["file","multi_select","relation"],number:["number","auto_increment_id"],text:["email","person","phone_number","text","url","status","select","formula","rollup","last_edited_by","created_by"]};function Vy(n){var a,s,l,c,p,m;let t=(a=n.className.match(/property-row-(.*)/))==null?void 0:a[1];if(!t)throw new Error("property type not found for: "+n);let e=(0,Pn.htmlToMarkdown)((s=n.cells[0].textContent)!=null?s:""),i=n.cells[1],r=Object.keys(Gf).find(y=>Gf[y].includes(t));if(!r)throw new Error("type not found for: "+i);let o="";switch(r){case"checkbox":o=i.innerHTML.includes("checkbox-on");break;case"number":if(o=Number(i.textContent),isNaN(o))return;break;case"date":ad(i);let y=i.getElementsByTagName("time");if(y.length===0)o="";else if(y.length===1)o=Xa((0,Pn.moment)((l=y.item(0))==null?void 0:l.textContent));else{let d=[];for(let f=0;fc.includes(a));s&&a.endsWith(".html")?e.push({type:"relation",a:o,id:s}):l?e.push({type:"attachment",a:o,path:l}):s&&a.startsWith("#")&&((r=o.parentElement)!=null&&r.classList.contains("table_of_contents-item"))&&e.push({type:"toc-item",a:o,id:s})}return e}function Ky(n){let t=/\[\[[^\]]*(\\\\)\|[^\]]*\]\]/,e=n.match(new RegExp(t,"g"));return e==null||e.forEach(i=>{n=n.replace(i,i.replace(/\\\\\|/g,"\\|"))}),n}function Xy(n){r1(n,"style"),rd(n,"span.notion-text-equation-token");let t=n.ownerDocument,e=n.findAll("figure.equation");for(let r of e){let o=r.find("annotation");if(!o)continue;let a=t.createElement("div");a.className="annotation",a.appendText(`$$${Kf(o.textContent)}$$`),r.replaceWith(a)}let i=n.findAll("span.notion-text-equation-token");for(let r of i){let o=r.find("annotation");o&&r.replaceWith(`$${Kf(o.textContent,!0)}$`)}}function Kf(n,t=!1){var i;let e=new RegExp(/^(?:\s|\\\\|\\\s)*(.*?)[\s\\]*$/,"s");return(i=n==null?void 0:n.replace(e,"$1").replace(/[\r\n]+/g,t?" ":`
+`))!=null?i:""}function Jy(n){var e;let t=(e=n.match(/^[^\.\?\!\n]*[\.\?\!]?/))==null?void 0:e[0];return t!=null?t:""}function Qy(n){var t;return!!/callout|bookmark/.test((t=n.getAttribute("class"))!=null?t:"")}function e1(n){var e;let t=n.ownerDocument;for(let i of n.findAll("figure.callout")){let r=(e=i.lastElementChild)==null?void 0:e.childNodes;if(!r)continue;let o=t.createElement("blockquote");o.append(...Array.from(r)),t1(o),i.replaceWith(o)}}function t1(n){var o,a,s;let t=n.firstChild,e=(o=t==null?void 0:t.nodeName)!=null?o:"",i=n.ownerDocument.createElement("p"),r="";e=="#text"?r=(a=t==null?void 0:t.textContent)!=null?a:"":e=="P"?r=t.innerHTML:["EM","STRONG","DEL","MARK"].includes(e)?r=t.outerHTML:n.prepend(i),r=r.replace(/ /g,"<br>"),i.innerHTML=`[!important] ${r}`,(s=n.firstChild)==null||s.replaceWith(i)}function n1(n){var t,e,i;for(let r of n.findAll("a.bookmark.source")){let o=r.getAttribute("href"),a=(t=r.find("div.bookmark-title"))==null?void 0:t.textContent,s=Jy((i=(e=r.find("div.bookmark-description"))==null?void 0:e.textContent)!=null?i:""),l=`> [!info] ${a}
+> ${s}
+> [${o}](${o})
+`;r.nextElementSibling&&Qy(r.nextElementSibling)&&(l+=`
+`),r.replaceWith(l)}}function i1(n){var t,e,i;for(let r of n.findAll("span[class=user]"))r.innerText=(t=r.textContent)!=null?t:"";for(let r of n.findAll("td div[class*=checkbox]")){let o=createSpan();o.setText(r.hasClass("checkbox-on")?"X":""),r.replaceWith(o)}for(let r of n.findAll("table span[class*=selected-value]"))((e=r.parentElement)==null?void 0:e.lastElementChild)!==r&&r.setText(r.textContent+", ");for(let r of n.findAll("a[href]"))if(!/^(https?:\/\/|www\.)/.test(r.href)){let o=createSpan();o.setText((i=r.textContent)!=null?i:""),r.replaceWith(o)}}function r1(n,t){for(let e of n.findAll(t))e.remove()}function o1(n,t){for(let e of t)a1(n,e);for(let e of t)s1(n,e);for(let e of t)rd(n,e);for(let e of t)l1(n,e)}function a1(n,t){for(let e of n.findAll(t)){if(!e.parentElement||e.parentElement.tagName===t.toUpperCase())continue;let i=e.find(t);for(;i;)Ja(i),i=e.find(t)}}function s1(n,t){let e=n.findAll(t);if(!e)return;let i=new RegExp(`${t}>( *)<${t}>`,"g");for(let r of e){if(!r||!r.parentElement)continue;let o=r.parentElement,a=o==null?void 0:o.innerHTML;o.innerHTML=a==null?void 0:a.replace(i,"$1")}}function rd(n,t){let e=n.findAll(t);if(e)for(let i of e){let r=i.previousSibling;(r==null?void 0:r.nodeName)=="BR"&&(r==null||r.remove())}}function l1(n,t){let e=n.innerHTML,i=e.match(new RegExp(`<${t}>.*?${t}>`,"sg"));if(i){for(let r of i.filter(o=>o.includes(" ")))e=e.replace(r,r.split(" ").join(`${t}> <${t}>`));n.innerHTML=e}}function Xf(n){var t;return Number((t=n==null?void 0:n.classList[1].slice(-1))!=null?t:-1)}function od(n,t){let e=Xf(n),i=Xf(t);if(e>i&&t.childElementCount==1){let r=createEl("ul");r.append(n),t.append(r)}else if(e>i&&t.childElementCount==2){let r=t.lastElementChild;r==null||r.append(n)}else if(e==i){let r=t.parentElement;r==null||r.append(n)}else e)/g," ");for(let t of n.findAll("code"))for(let e of t.findAll("br"))e.replaceWith(`
+`)}function u1(n){var t;for(let e of n.findAll("link"))e.innerText=(t=e.textContent)!=null?t:""}function ad(n){var t,e;for(let i of n.findAll("time"))i.textContent=(e=(t=i.textContent)==null?void 0:t.replace(/@/g,""))!=null?e:""}var Qf={"1.875em":"h1","1.5em":"h2","1.25em":"h3"};function f1(n){var e;let t=n.findAll("summary");for(let i of t){let r=i.getAttribute("style");if(r){for(let o of Object.keys(Qf))if(r.includes(o)){i.replaceWith(createEl(Qf[o],{text:(e=i.textContent)!=null?e:""}));break}}}}function ed(n,t){let e=n.findAll(t);for(let i of e)Ja(i)}function td(n,t){for(let e of n.findAll(t)){let i=[],r=[],o=e;for(;o.tagName===t.toUpperCase();){i.push(o);for(let s=0;ss.remove())}}function d1(n){for(let t of n.findAll(".checkbox.checkbox-on"))t.replaceWith("[x] ");for(let t of n.findAll(".checkbox.checkbox-off"))t.replaceWith("[ ] ")}function m1(n){var e;let t=n.findAll("a");if(t.length===0)return n;for(let i of t){let r=createSpan();r.setText((e=i.getAttribute("href"))!=null?e:""),i.replaceWith(r)}}function nd(n,t,e){var i,r,o;for(let a of t){let s=createSpan(),l="";switch(a.type){case"relation":let c=n.idsToFileInfo[a.id];if(c){let y=a.a.closest("table");l=`[[${c.fullLinkPathNeeded?`${n.getPathForFile(c)}${c.title}${y?"\\":""}|${c.title}`:c.title}]]`}else{console.warn("missing relation data for id: "+a.id);let{basename:y}=re(decodeURI((i=a.a.getAttribute("href"))!=null?i:""));l=`[[${Zf(y)}]]`}break;case"attachment":let p=n.pathsToAttachmentInfo[a.path];if(!p){console.warn("missing attachment data for: "+a.path);continue}l=`${e?"!":""}[[${p.fullLinkPathNeeded?p.targetParentFolder+p.nameWithExtension+"|"+p.nameWithExtension:p.nameWithExtension}]]`;break;case"toc-item":l=(r=a.a.textContent)!=null?r:"";let m=(o=l.endsWith("]"))!=null?o:!1;l=`[[#${l+(m?" ":"")}]]`}s.setText(l),a.a.replaceWith(s)}}var Lr=class{constructor(t,e){this.idsToFileInfo={};this.pathsToAttachmentInfo={};this.attachmentPath=t,this.singleLineBreaks=e}getPathForFile(t){let{idsToFileInfo:e}=this,i=t.path.split("/");return t.parentIds.map(r=>{var o,a,s;return(s=(o=e[r])==null?void 0:o.title)!=null?s:(a=i.find(l=>l.contains(r)))==null?void 0:a.replace(` ${r}`,"")}).filter(r=>r).map(r=>r.replace(/[\. ]+$/,"")).join("/")+"/"}};async function ld(n,t){var i,r;let{filepath:e}=t;if(t.extension==="html"){let o=await t.readText(),a=ft(o),l=a.find("body").children,c;for(let E=0;Ee.setValue(this.parentsInSubfolders).onChange(i=>this.parentsInSubfolders=i)),new xt.Setting(this.modal.contentEl).setName("Single line breaks").setDesc("Separate Notion blocks with only one line break (default is 2).").addToggle(e=>e.setValue(this.singleLineBreaks).onChange(i=>{this.singleLineBreaks=i}))}async import(e){var w;let{vault:i,parentsInSubfolders:r,files:o}=this;if(o.length===0){new xt.Notice("Please pick at least one file to import.");return}let a=await this.getOutputFolder();if(!a){new xt.Notice("Please select a location to export to.");return}let s=a.path;s=(0,xt.normalizePath)(s),s!=null&&s.endsWith("/")||(s+="/");let l=new Lr((w=i.getConfig("attachmentFolderPath"))!=null?w:"",this.singleLineBreaks);e.status("Looking for files to import");let c=0;if(await Qa(e,o,async E=>{try{await ld(l,E),c=Object.keys(l.idsToFileInfo).length+Object.keys(l.pathsToAttachmentInfo).length,e.reportProgress(0,c)}catch(d){e.reportSkipped(E.fullpath)}}),e.isCancelled())return;e.status("Resolving links and de-duplicating files"),Wf({vault:i,info:l,targetFolderPath:s,parentsInSubfolders:r});let p=new Set([s]),m=Object.values(l.idsToFileInfo).map(E=>s+l.getPathForFile(E)).concat(Object.values(l.pathsToAttachmentInfo).map(E=>E.targetParentFolder));for(let E of m)p.add(E);for(let E of p){if(e.isCancelled())return;await this.createFolders(E)}let y=0;e.status("Starting import"),await Qa(e,o,async E=>{y++,e.reportProgress(y,c);try{if(E.extension==="html"){let d=bt(E.name);if(!d)throw new Error("ids not found for "+E.filepath);let f=l.idsToFileInfo[d];if(!f)throw new Error("file info not found for "+E.filepath);e.status(`Importing note ${f.title}`);let g=await id(l,E),v={};f.ctime&&(v.ctime=f.ctime.getTime(),v.mtime=f.ctime.getTime()),f.mtime&&(v.mtime=f.mtime.getTime());let _=`${s}${l.getPathForFile(f)}${f.title}.md`;await i.create(_,g,v),e.reportNoteSuccess(E.fullpath)}else{let d=l.pathsToAttachmentInfo[E.filepath];if(!d)throw new Error("attachment info not found for "+E.filepath);e.status(`Importing attachment ${E.name}`);let f=await E.read();await i.createBinary(`${d.targetParentFolder}${d.nameWithExtension}`,f),e.reportAttachmentSuccess(E.fullpath)}}catch(d){if(d.message==="page body was not found"){e.reportSkipped(E.fullpath,"page body was not found");return}e.reportFailed(E.fullpath,d)}})}};async function Qa(n,t,e){for(let i of t){if(n.isCancelled())return;try{await gt(i,async(r,o)=>{for(let a of o){if(n.isCancelled())return;if(a.extension==="md"&&bt(a.name))throw new xt.Notice("Notion Markdown export detected. Please export Notion data to HTML instead."),n.cancel(),new Error("Notion importer uses only HTML exports. Please use the correct format.");if(!(a.extension==="csv"&&bt(a.name))&&a.name!=="index.html")if(a.extension==="zip"&&a.parent==="")try{await Qa(n,[a],e)}catch(s){n.reportFailed(a.fullpath)}else await e(a)}})}catch(r){n.reportFailed(i.fullpath)}}}var be=require("obsidian");var es="onenote-importer-refresh-token",cd="66553851-08fa-44f2-8bb1-1436f121a73d",pd=["user.read","notes.read"],y1=/<(object|iframe)([^>]*)\/>/g,ud=/(<\/p>)\s*(
]*>)|\n \n/g,ts=5,b1=new RegExp(/^data:[\w\d]+\/[\w\d]+;base64,/),Mr=class extends ce{constructor(){super(...arguments);this.importPreviouslyImported=!1;this.importIncompatibleAttachments=!1;this.selectedIds=[];this.notebooks=[];this.graphData={state:xn(32),accessToken:""};this.attachmentDownloadPauseCounter=0;this.rememberMe=!1}async init(){this.addOutputLocationSetting("OneNote"),new be.Setting(this.modal.contentEl).setName("Import incompatible attachments").setDesc("Imports incompatible attachments which cannot be embedded in Obsidian, such as .exe files.").addToggle(r=>r.setValue(!1).onChange(o=>this.importIncompatibleAttachments=o)),new be.Setting(this.modal.contentEl).setName("Skip previously imported").setDesc("If enabled, notes imported previously by this plugin will be skipped.").addToggle(r=>r.setValue(!0).onChange(o=>this.importPreviouslyImported=!o));let e=!1;if(this.retrieveRefreshToken())try{await this.updateAccessToken(),e=!0}catch(r){}this.microsoftAccountSetting=new be.Setting(this.modal.contentEl).setName("Sign in with your Microsoft account").setDesc("You need to sign in to import your OneNote data.").addButton(r=>r.setCta().setButtonText("Sign in").onClick(()=>{this.registerAuthCallback(this.authenticateUser.bind(this));let o=new URLSearchParams({client_id:cd,scope:"offline_access "+pd.join(" "),response_type:"code",redirect_uri:$r,response_mode:"query",state:this.graphData.state});window.open(`https://login.microsoftonline.com/common/oauth2/v2.0/authorize?${o.toString()}`)})),this.microsoftAccountSetting.settingEl.toggle(!e);let i=new be.Setting(this.modal.contentEl).setName("Remember me").setDesc("If checked, you will be automatically logged in for subsequent imports.").addToggle(r=>{r.onChange(o=>{this.rememberMe=o,o&&this.refreshToken?this.storeRefreshToken(this.refreshToken):this.clearStoredRefreshToken()})});i.settingEl.toggle(!e),this.switchUserSetting=new be.Setting(this.modal.contentEl).addButton(r=>r.setCta().setButtonText("Switch user").onClick(()=>{this.microsoftAccountSetting.settingEl.show(),i.settingEl.show(),this.clearStoredRefreshToken(),this.switchUserSetting.settingEl.hide(),this.contentArea.empty()})),this.loadingArea=this.modal.contentEl.createDiv({text:"Loading notebooks..."}),this.loadingArea.hide(),this.contentArea=this.modal.contentEl.createDiv(),this.contentArea.hide(),e?(await this.setSwitchUser(),await this.showSectionPickerUI()):this.switchUserSetting.settingEl.hide()}async authenticateUser(e){try{if(e.state!==this.graphData.state)throw new Error(`An incorrect state was returned.
+Expected state: ${this.graphData.state}
+Returned state: ${e.state}`);await this.updateAccessToken(e.code),await this.setSwitchUser(),await this.showSectionPickerUI()}catch(i){console.error("An error occurred while we were trying to sign you in. Error details: ",i),this.modal.contentEl.createEl("div",{text:"An error occurred while trying to sign you in."}).createEl("details",{text:i}).createEl("summary",{text:"Click here to show error details"})}}async setSwitchUser(){let e=await this.fetchResource("https://graph.microsoft.com/v1.0/me","json");this.switchUserSetting.setDesc(`Signed in as ${e.displayName} (${e.mail}). If that's not the correct account, sign in again.`),this.switchUserSetting.settingEl.show(),this.microsoftAccountSetting.settingEl.hide()}async updateAccessToken(e){let i=new URLSearchParams({client_id:cd,scope:"offline_access "+pd.join(" "),redirect_uri:$r});if(e)i.set("code",e),i.set("grant_type","authorization_code");else{let o=this.retrieveRefreshToken();if(!o)throw new Error("Missing token required for authentication. Please try logging in again.");i.set("refresh_token",o),i.set("grant_type","refresh_token")}let r=await(0,be.requestUrl)({method:"POST",url:"https://login.microsoftonline.com/common/oauth2/v2.0/token",contentType:"application/x-www-form-urlencoded",body:i.toString()}).json;if(!r.access_token)throw new Error(`Unexpected data was returned instead of an access token. Error details: ${r}`);r.refresh_token&&this.storeRefreshToken(r.refresh_token),this.graphData.accessToken=r.access_token}storeRefreshToken(e){this.refreshToken=e,this.rememberMe&&localStorage.setItem(es,e)}retrieveRefreshToken(){return this.refreshToken?this.refreshToken:localStorage.getItem(es)}clearStoredRefreshToken(){localStorage.removeItem(es)}async showSectionPickerUI(){var o,a;this.loadingArea.show(),this.selectedIds=[];let e="https://graph.microsoft.com/v1.0/me/onenote/notebooks",i=new URLSearchParams({$expand:"sections($select=id,displayName),sectionGroups($expand=sections,sectionGroups)",$select:"id,displayName,lastModifiedDateTime",$orderby:"lastModifiedDateTime DESC"}),r=`${e}?${i.toString()}`;try{this.notebooks=(await this.fetchResource(r,"json")).value,this.contentArea.empty(),this.contentArea.createEl("h4",{text:"Choose data to import"});for(let s of this.notebooks){if(((o=s.sectionGroups)==null?void 0:o.length)!==0)for(let c of s.sectionGroups)await this.fetchNestedSectionGroups(c);let l=this.contentArea.createDiv();new be.Setting(l).setName(s.displayName).setDesc(`Last edited on: ${be.moment.utc(s.lastModifiedDateTime).format("Do MMMM YYYY")}. Contains ${(a=s.sections)==null?void 0:a.length} sections.`).addButton(c=>c.setCta().setButtonText("Select all").onClick(()=>{l.querySelectorAll('input[type="checkbox"]:not(:checked)').forEach(p=>p.click())})),this.renderHierarchy(s,l)}}catch(s){this.showContentAreaErrorMessage()}this.loadingArea.hide(),this.contentArea.show()}async fetchNestedSectionGroups(e){if(e.sectionGroups=(await this.fetchResource(e.sectionGroupsUrl+"?$expand=sectionGroups($expand=sections),sections","json")).value,e.sectionGroups)for(let i=0;i{if(l.checked)this.selectedIds.push(o.id);else{let c=this.selectedIds.findIndex(p=>p===o.id);c!==-1&&this.selectedIds.splice(c,1)}})}}}showContentAreaErrorMessage(){this.contentArea.empty(),this.contentArea.createEl("p",{text:"Microsoft OneNote has limited how fast notes can be imported. Please try again in 30 minutes to continue importing."}),this.contentArea.show(),this.loadingArea.hide()}async import(e){let i=new Set,r=await this.modal.plugin.loadData();r.importers.onenote||(r.importers.onenote={previouslyImportedIDs:[]});for(let c of r.importers.onenote.previouslyImportedIDs)i.add(c);if(!await this.getOutputFolder()){new be.Notice("Please select a location to export to.");return}if(!this.graphData.accessToken){new be.Notice("Please sign in to your Microsoft Account.");return}e.status("Starting OneNote import");let a=0,s=0,l=0;for(let c of this.selectedIds){e.reportProgress(s,a);let p=`https://graph.microsoft.com/v1.0/me/onenote/sections/${c}/pages`,m=new URLSearchParams({$select:"id,title,createdDateTime,lastModifiedDateTime,level,order,contentUrl",$orderby:"order",pagelevel:"true"}),y=`${p}?${m.toString()}`,w=null;try{w=(await this.fetchResource(y,"json")).value}catch(E){e.status("Microsoft OneNote has limited how fast notes can be imported. Please try again in 30 minutes to continue importing.");return}if(w){a+=w.length,this.insertPagesToSection(w,c),e.reportProgress(s,a);for(let E=0;E5){e.status("Microsoft OneNote has limited how fast notes can be imported. Please try again in 30 minutes to continue importing.");return}}e.reportProgress(s,a)}}}}insertPagesToSection(e,i,r){if(!r){for(let o of this.notebooks)this.insertPagesToSection(e,i,o);return}if(r.sectionGroups){let o=r.sectionGroups;for(let a of o)this.insertPagesToSection(e,i,a)}if(r.sections){let o=r;for(let a of o.sections)a.id===i&&(a.pages=e)}}async processFile(e,i,r){var o,a;try{let s=this.convertFormat(i),l=await this.getOutputFolder(),c=this.getEntityPathNoParent(r.id,l.name),p;await this.vault.adapter.exists(c)?p=this.vault.getAbstractFileByPath(c):p=await this.vault.createFolder(c);let m=this.convertTags(ft(s.html)),y=await this.getAllAttachments(e,m.replace(ud," ")),w=this.styledElementToHTML(y);w=this.convertInternalLinks(w),w=this.convertDrawings(w);let E=(0,be.htmlToMarkdown)(w).trim().replace(ud," "),d=await this.saveAsMarkdownFile(p,r.title,E),f=r!=null&&r.lastModifiedDateTime?Date.parse(r.lastModifiedDateTime):null,g=r!=null&&r.createdDateTime?Date.parse(r.createdDateTime):null,v={ctime:(o=g!=null?g:f)!=null?o:Date.now(),mtime:(a=f!=null?f:g)!=null?a:Date.now()};await this.vault.append(d,"",v),e.reportNoteSuccess(r.title)}catch(s){e.reportFailed(r.title,s)}}convertFormat(e){let i={html:"",inkml:""},r=e.split(`
+`,1)[0];e.slice(0,-2);let o=e.split(r);if(o.shift(),o.length===2)for(let a of o){let l=a.split(`
+`).find(p=>p.includes("Content-Type")).split(";")[0].split(":")[1].trim(),c=a.split(`
+`).slice(2).join(`
+`).trim();l==="text/html"?i.html=c:l==="application/inkml+xml"&&(i.inkml=c)}else throw new Error("The input string is incorrect and may be missing data. Inputted string: "+e);return i}convertTags(e){var r,o;let i=Array.from(e.querySelectorAll("[data-tag]"));for(let a of i)if((r=a.getAttribute("data-tag"))!=null&&r.contains("to-do")){let l=a.getAttribute("data-tag")==="to-do:completed"?"[x]":"[ ]";a.innerHTML=`- ${l} ${a.innerHTML}`}else{let s=(o=a.getAttribute("data-tag"))==null?void 0:o.split(",");s==null||s.forEach(l=>{a.innerHTML=a.innerHTML+` #${l.replace(":","-")} `})}return e.outerHTML}convertInternalLinks(e){let i=e.findAll("a");for(let r of i)if(r.href.startsWith("onenote:")){let o=r.href.indexOf("#")+1,a=r.href.indexOf("&",o);r.href=r.href.slice(o,a)}return e}getEntityPathNoParent(e,i){for(let r of this.notebooks){let o=this.getEntityPath(e,`${i}/${r.displayName}`,r);if(o)return o}return null}getEntityPath(e,i,r){let o=null;if("sectionGroups"in r&&r.sectionGroups){let a=this.searchSectionGroups(e,i,r.sectionGroups);a!==null&&(o=a)}if("sections"in r&&r.sections){let a=this.searchSectionGroups(e,i,r.sections);a!==null&&(o=a)}if("pages"in r&&r.pages){let a=this.searchPages(e,i,r);a!==null&&(o=a)}return o}searchPages(e,i,r){var a;let o=null;for(let s=0;s=0;p--)if(r.pages[p].level===l.level-1){o+="/"+r.pages[p].title;break}}break}}return o}searchSectionGroups(e,i,r){let o=null;for(let a of r)if(a.id===e)o=`${i}/${a.displayName}`;else{let s=this.getEntityPath(e,`${i}/${a.displayName}`,a);if(s){o=s;break}}return o}async getAllAttachments(e,i){var l,c,p,m;let r=ft(i.replace(y1,"<$1$2>$1>")),o=r.findAll("object"),a=r.findAll("img"),s=r.findAll("iframe");for(let y of o){for(;y.firstChild;)(l=y.parentNode)==null||l.insertBefore(y.firstChild,y.nextSibling);let w=y.getAttribute("data-attachment").split("."),E=w[w.length-1];if(!(!Ln.contains(E)&&!this.importIncompatibleAttachments)){let d=y.getAttribute("data-attachment"),f=y.getAttribute("data"),g=await this.fetchAttachment(e,d,f),v=document.createElement("p");v.innerText=`![[${g}]]`,(c=y.parentNode)==null||c.replaceChild(v,y)}}for(let y=0;y{e.status("Pausing attachment download to avoid rate limiting."),this.attachmentDownloadPauseCounter=0,setTimeout(o,3e3)}),this.attachmentDownloadPauseCounter++,e.status("Downloading attachment "+i);try{let o=await this.getAvailablePathForAttachment(i,[]),a=await this.fetchResource(r,"file");return await this.app.vault.createBinary(o,a),e.reportAttachmentSuccess(i),o}catch(o){e.reportFailed(i),console.error(o)}}styledElementToHTML(e){let i={"font-weight:bold":"b","font-style:italic":"i","text-decoration:underline":"u","text-decoration:line-through":"s","background-color":"mark"};e.findAll("cite").forEach(l=>l.innerHTML="> "+l.innerHTML+" ");let o=!1,a=document.createElement("pre");return e.querySelectorAll("*").forEach(l=>{let c=l.getAttribute("style")||"",p=Object.keys(i).find(m=>c.includes(m));if(c!=null&&c.contains("font-family:Consolas"))o?a.innerHTML=a.innerHTML.slice(0,-3)+l.innerHTML+"\n```":(o=!0,l.replaceWith(a),a.innerHTML="```\n"+l.innerHTML+"\n```");else if(l.nodeName==="BR"&&o)a.innerHTML=a.innerHTML.slice(0,-3)+"\n```";else if(p){let m=i[p],y=document.createElement(m);y.innerHTML=l.innerHTML,l.replaceWith(y)}}),e}convertDrawings(e){var o;let i=document.createTreeWalker(e,NodeFilter.SHOW_COMMENT),r=!1;for(;i.nextNode();)((o=i.currentNode.nodeValue)==null?void 0:o.trim())==="InkNode is not supported"&&(r=!0);if(r){let a=document.createTextNode("> [!caution] This page contained a drawing which was not converted.");e.insertBefore(a,e.firstChild)}else for(let a=0;asetTimeout(p,c)),this.fetchResource(e,i,r+1);throw new Error("Exceeded maximum retry attempts")}}return a}catch(o){throw console.error(`An internal error occurred while trying to fetch '${e}'. Error details: `,o),o}}};var Ut=require("obsidian");var fd=require("obsidian"),x1=/[\?<>\\:\*\|"]/g,w1=/[\x00-\x1f\x80-\x9f]/g,v1=/^\.+$/,E1=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,_1=/[\. ]+$/,T1=/^\./,A1=/\[/g,k1=/\]/g;function Br(n){return n.replace(x1,"").replace(w1,"").replace(v1,"").replace(E1,"").replace(_1,"").replace(A1,"").replace(k1,"").replace(T1,"")}function Ur(n,t){let e="MMMM Do, YYYY",i=(0,fd.moment)(n,e);return i.format(e)!==n?n:i.isValid()?i.format(t):n}var jr=require("obsidian"),N1=["POMO","word-count","date","slider","encrypt","TaoOfRoam","orphans","count","character-count","comment-button","query","streak","attr-table","mentions","search","roam/render","calc"],S1=new RegExp(`\\{\\{(\\[\\[)?(${N1.join("|")})(\\]\\])?.*?\\}\\}(\\})?`,"g"),R1=/{{pdf:|{{\[\[pdf|{{\[\[audio|{{audio:|{{video:|{{\[\[video/,dd=/https:\/\/firebasestorage(.*?)\?alt(.*?)\)/,O1=/https:\/\/firebasestorage(.*?)\?alt(.*?)/,D1=/(?<=\(\()\b(.*?)\b(?=\)\))/g,Hr=class extends ce{constructor(){super(...arguments);this.downloadAttachments=!1;this.fileDateYAML=!1;this.titleYAML=!1;this.newestTimestamp=0;this.oldestTimestamp=0}init(){this.addFileChooserSetting("Roam (.json)",["json"]),this.addOutputLocationSetting("Roam"),this.userDNPFormat=this.getUserDNPFormat(),new Ut.Setting(this.modal.contentEl).setName("Import settings").setHeading(),new Ut.Setting(this.modal.contentEl).setName("Download all attachments").setDesc("If enabled, all attachments uploaded to Roam will be downloaded to your attachments folder.").addToggle(e=>{e.setValue(this.downloadAttachments),e.onChange(async i=>{this.downloadAttachments=i})}),new Ut.Setting(this.modal.contentEl).setName("Add YAML created/update date").setDesc("If enabled, notes will have the create-time and edit-time from Roam added as properties.").addToggle(e=>{e.setValue(this.fileDateYAML),e.onChange(async i=>{this.fileDateYAML=i})}),new Ut.Setting(this.modal.contentEl).setName("Add YAML title").setDesc("If enabled, notes will have the full title added as a property (regardless of illegal file name characters).").addToggle(e=>{e.setValue(this.titleYAML),e.onChange(async i=>{this.titleYAML=i})})}async import(e){this.progress=e;let{files:i}=this;if(i.length===0){new Ut.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new Ut.Notice("Please select a location to export to.");return}for(let o of i){if(e.isCancelled())return;let a=Ze(o.basename),s=`${r.path}/${a}`,l=`${r.path}/${a}/Attachments`;await this.createFolders(s),await this.createFolders(l);let c=await o.readText(),p=JSON.parse(c),[m,y]=this.preprocess(p),w=new Map;for(let g in p){let v=p[g],_=Ur(Br(v.title),this.userDNPFormat).trim();if(_===""){e.reportFailed(v.uid,"Title is empty"),console.error("Cannot import data with an empty title",v);continue}let A=`${s}/${_}.md`,D=this.titleYAML?v.title:"",T=0,k=0;if(this.fileDateYAML){let C=v["create-time"],O=v["edit-time"];typeof C=="number"&&(T=C),typeof O=="number"&&(k=O)}let b=await this.jsonToMarkdown(s,l,v,"",!1,D,T,k);w.set(A,b)}for(let g of y.values()){let v=await this.roamMarkupScrubber(s,l,g.blockString,!0),_=await this.extractAndProcessBlockReferences(w,m,s,v),A=`${s}/${g.pageName}.md`,D=w.get(A);if(D){let T=D.split(`
+`),k=T.findIndex(b=>b.contains("* "+v));k!==-1&&(T[k]=T[k].replace(v,_)),w.set(A,T.join(`
+`))}}let{vault:E}=this,d=w.size,f=1;for(let[g,v]of w.entries()){if(e.isCancelled())return;try{let{parent:_}=re(g);await this.createFolders(_);let A=E.getAbstractFileByPath(g);A?await E.modify(A,v):await E.create(g,v),e.reportNoteSuccess(g),e.reportProgress(f,d)}catch(_){console.error("Error saving Markdown to file:",g,_),e.reportFailed(g)}f++}}}getUserDNPFormat(){let e=this.app.internalPlugins.getPluginById("daily-notes").instance;return e?e.options.format||"YYYY-MM-DD":(console.log('Daily note plugin is not enabled. Roam import defaulting to "YYYY-MM-DD" format.'),"YYYY-MM-DD")}preprocess(e){let i=new Map,r=new Map,o=this.userDNPFormat;function a(s,l){if(l.uid){let c=new Date(s.uid);if(!isNaN(c.getTime())){let y=Ur(s.title,o);s.title=y}let p={pageName:Br(s.title),blockString:l.string};/.*?(\(\(.*?\)\)).*?/g.test(l.string)&&r.set(l.uid,p),i.set(l.uid,p)}if(l.children)for(let c of l.children)a(s,c)}for(let s of e)if(s.children)for(let l of s.children)a(s,l);return[i,r]}async roamMarkupScrubber(e,i,r,o=!1){return r=r.replace(S1,""),r.substring(0,8)==":hiccup "&&r.includes(":hr")?"---":(r=r.replace(/\[\[(.*?)\]\]/g,(a,s)=>`[[${Ur(Br(s),this.userDNPFormat)}]]`),r=r.replace(/\[\[(.*\/.*)\]\]/g,(a,s)=>`[[${e}/${s}|${s}]]`),r=r.replace(/\[.+?\]\((\(.+?\)\))\)/g,"$1"),r=r.replace(/\[(.+?)\]\(\[\[(.+?)\]\]\)/g,"[[$2|$1]]"),r=r.replace(/\[\[>\]\]/g,">"),r=r.replace(/{{TODO}}|{{\[\[TODO\]\]}}/g,"[ ]"),r=r.replace(/{{DONE}}|{{\[\[DONE\]\]}}/g,"[x]"),r=r.replace("::",":"),r=r.replace(/{{.*?\bvideo\b.*?(\bhttp.*?\byoutu.*?)}}/g,""),r=r.replace(/(https?:\/\/twitter\.com\/(?:#!\/)?\w+\/status\/\d+(?:\?[\w=&-]+)?)/g,""),r=r.replace(/\_\_(.+?)\_\_/g,"*$1*"),r=r.replace(/\^\^(.+?)\^\^/g,"==$1=="),r=r.replace(/{{\[{0,2}embed.*?(\(\(.*?\)\)).*?}}/g,"$1"),r=r.replace(/{{\[{0,2}embed.*?(\[\[.*?\]\]).*?}}/g,"$1"),this.downloadAttachments&&!o&&r.includes("firebasestorage")&&(r=await this.downloadFirebaseFile(r,i)),r)}async jsonToMarkdown(e,i,r,o="",a=!1,s,l,c){let p=[],m=[],y=r["edit-time"],w=r["create-time"];if(this.newestTimestampy?c:y,w!==void 0?l>10?this.oldestTimestamp=Math.min(l,w):this.oldestTimestamp=w:this.oldestTimestamp=l,"string"in r&&r.string){let E=r.heading?"#".repeat(r.heading)+" ":"",d=await this.roamMarkupScrubber(e,i,r.string);p.push(`${a?o+"* ":o}${E}${d}`)}if(r.children)for(let E of r.children)p.push(await this.jsonToMarkdown(e,i,E,o+" ",!0,"",this.oldestTimestamp,this.newestTimestamp));if((this.fileDateYAML||this.titleYAML)&&!a){let E=this.oldestTimestamp;if(m.push("---"),this.titleYAML&&m.push(`title: "${s}"`),this.fileDateYAML){let d="YYYY-MM-DD HH:mm:ss",f=this.newestTimestamp?(0,jr.moment)(this.newestTimestamp).format(d):(0,jr.moment)(new Date).format(d),g=E?(0,jr.moment)(E).format(d):f;m.push("created: "+g),m.push("updated: "+f)}m.push("---"),p.unshift(m.join(`
+`))}return p.join(`
+`)}async modifySourceBlockString(e,i,r,o){if(!i.blockString.endsWith("^"+o)){let a=`${r}/${i.pageName}.md`,s=e.get(a);if(s){let l=s.split(`
+`),c=l.findIndex(p=>p.contains("* "+i.blockString));if(c!==-1){let p=i.blockString+" ^"+o;l[c]=l[c].replace(i.blockString,p),i.blockString=i.blockString+" ^"+o}e.set(a,l.join(`
+`))}}}async extractAndProcessBlockReferences(e,i,r,o){let a=o.match(D1);if(!a)return o;let s=[];for(let p of a)try{let m=i.get(p);if(!m){s.push(p);continue}let y=m.blockString.replace(/\[\[|\]\]/g,""),w=`[[${r}/${m.pageName}#^${p}|${y}]]`;await this.modifySourceBlockString(e,m,r,p),s.push(w)}catch(m){s.push(p)}let l=0;return o.replace(/\(\(\b.*?\b\)\)/g,()=>s[l++])}async downloadFirebaseFile(e,i){let{progress:r,vault:o}=this,a="";try{let s,l;if(R1.test(e)?(s=e.match(/https:\/\/firebasestorage(.*?)\?alt(.*?)\}/),l=e.match(/{{.*https:\/\/firebasestorage.*?alt=media&.*?(?=\s|$)/)):dd.test(e)?(s=e.match(dd),l=e.match(/!\[.*https:\/\/firebasestorage.*?alt=media&.*?(?=\s|$)/)):(s=e.match(O1),l=e.match(/https:\/\/firebasestorage.*?alt=media&.*?(?=\s|$)/)),s&&l){let c="https://firebasestorage"+s[1],p=decodeURIComponent(c.split("/").last()||"");if(p){let d=p.split("/");d.length>1&&(d.splice(-1,1),this.createFolders(`${i}/${d.join("/")}`))}else{let d=Math.floor(Date.now()/1e3),f=c.slice(-5).match(/(.*?)\.(.+)/);if(!f)return r.reportSkipped(s[1],"Unexpected file extension"),e;p=`${d}.${f[2]}`}let m=`${i}/${p}`;if(o.getAbstractFileByPath(m))return r.reportSkipped(s[1],"File already exists"),e;a=s[0].slice(0,-1);let E=await(await fetch(a,{})).arrayBuffer();return await o.createBinary(m,E),r.reportAttachmentSuccess(a),e.replace(l[0],`![[${m}]]`)}}catch(s){console.error(s),r.reportFailed(a,s)}return e}};var jt=require("obsidian");var md=/!\[\]\(assets\/([^)]*)\)/g,qr=class extends ce{init(){jt.Platform.isMacOS||this.modal.contentEl.createEl("p",{text:"Due to platform limitations, only textpack and zip files can be imported from this device. Open your vault on a Mac to import textbundle files."});let e=jt.Platform.isMacOS?["textbundle","textpack","zip"]:["textpack","zip"];this.addFileChooserSetting("Textbundle",e,!0),this.addOutputLocationSetting("Textbundle")}async import(e){let{files:i}=this;if(i.length===0){new jt.Notice("Please pick at least one file to import.");return}let r=await this.getOutputFolder();if(!r){new jt.Notice("Please select a location to export to.");return}this.attachmentsFolderPath=await this.createFolders(`${r.path}/assets`);for(let o of i)if(o.extension==="textpack")await gt(o,async(a,s)=>{await this.process(e,o.name,s)});else if(o.extension==="zip")await gt(o,async(a,s)=>{let l=this.groupFilesByTextbundle(o.name,s);for(let c of l)await this.process(e,o.name,c)});else{let s=await new ut(`${o.toString()}/`).list();await this.process(e,o.name,s)}}groupFilesByTextbundle(e,i){let r={},o=e+"/",a=".textbundle";for(let s of i){if(!s.fullpath.startsWith(o)){console.log("Skipping",s.fullpath);continue}let l=s.fullpath.slice(o.length);if(l.startsWith("._")||l.startsWith("__MACOSX")){console.log("Skipping",s.fullpath);continue}let c=l.indexOf(a);if(c===-1){console.log("Skipping",s.fullpath);continue}let p=l.slice(0,c)+".textbundle";if(l.slice(c+a.length+1).startsWith("._")){console.log("Skipping",s.fullpath);continue}p in r?r[p].push(s):r[p]=[s]}return Object.values(r)}async process(e,i,r){let o=r.find(a=>a.name==="info.json");if(o){let a=await o.readText(),s=JSON.parse(a);if(s.hasOwnProperty("type")&&s.type!=="net.daringfireball.markdown"){e.reportSkipped(i,"The textbundle does not contain markdown");return}}for(let a of r)if(!a.name.startsWith("._"))try{if(a.type==="file"&&(a.extension==="md"||a.extension==="markdown")){let s="parent"in a?a.parent:i;s=s.replace(/.textbundle$/,"");let l=await a.readText();l.match(md)&&(l=l.replace(md,`![[${this.attachmentsFolderPath.path}/$1]]`));let c=(0,jt.normalizePath)(s),p=await this.getOutputFolder();await this.saveAsMarkdownFile(p,c,l),e.reportNoteSuccess(s)}else if(a.type==="file"&&a.fullpath.contains("assets/"))await this.importAsset(e,a);else if(a.type==="folder"){let{basename:s}=re(a.toString());if(s!=="assets")continue;let c=await new ut(`${a.toString()}/`).list();for(let p of c)await this.importAsset(e,p)}else a.name!=="info.json"&&e.reportSkipped(a.name,"the file is not a media or markdown file.")}catch(s){e.reportFailed(a.name,s)}}async importAsset(e,i){if(i.type==="folder"){e.reportSkipped(i.name);return}let r=`${this.attachmentsFolderPath.path}/${i.name}`;this.vault.getAbstractFileByPath(r)&&e.reportSkipped(i.name,"the file already exists.");let a=await i.read();await this.vault.createBinary(r,a),e.reportAttachmentSuccess(i.name)}};var $r="obsidian://importer-auth/",Ln=["png","webp","jpg","jpeg","gif","bmp","svg","mpg","m4a","webm","wav","ogv","3gp","mov","mp4","mkv","pdf"],Wr=class{constructor(t){this.notes=0;this.attachments=0;this.skipped=[];this.failed=[];this.maxFileNameLength=100;this.cancelled=!1;this.el=t,t.empty(),this.statusEl=t.createDiv("importer-status"),this.progressBarEl=t.createDiv("importer-progress-bar",e=>{this.progressBarInnerEl=e.createDiv("importer-progress-bar-inner")}),t.createDiv("importer-stats-container",e=>{e.createDiv("importer-stat mod-imported",i=>{this.importedCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"imported"})}),e.createDiv("importer-stat mod-attachments",i=>{this.attachmentCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"attachments"})}),e.createDiv("importer-stat mod-remaining",i=>{this.remainingCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"remaining"})}),e.createDiv("importer-stat mod-skipped",i=>{this.skippedCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"skipped"})}),e.createDiv("importer-stat mod-failed",i=>{this.failedCountEl=i.createDiv({cls:"importer-stat-count",text:"0"}),i.createDiv({cls:"importer-stat-name",text:"failed"})})}),this.importLogEl=t.createDiv("importer-log"),this.importLogEl.hide()}status(t){this.statusEl.setText(t.trim()+"...")}reportNoteSuccess(t){this.notes++,this.importedCountEl.setText(this.notes.toString())}reportAttachmentSuccess(t){this.attachments++,this.attachmentCountEl.setText(this.attachments.toString())}reportSkipped(t,e){let{importLogEl:i}=this;this.skipped.push(t),this.skippedCountEl.setText(this.skipped.length.toString()),console.log("Import skipped",t,e),this.importLogEl.createDiv("list-item",r=>{r.createSpan({cls:"importer-error",text:"Skipped: "}),r.createSpan({text:`"${Qn(t,this.maxFileNameLength)}"`+(e?` because ${Qn(String(e),this.maxFileNameLength)}`:"")})}),i.scrollTop=i.scrollHeight,i.show()}reportFailed(t,e){let{importLogEl:i}=this;this.failed.push(t),this.failedCountEl.setText(this.failed.length.toString()),console.log("Import failed",t,e),this.importLogEl.createDiv("list-item",r=>{r.createSpan({cls:"importer-error",text:"Failed: "}),r.createSpan({text:`"${Qn(t,this.maxFileNameLength)}"`+(e?` because ${Qn(String(e),this.maxFileNameLength)}`:"")})}),i.scrollTop=i.scrollHeight,i.show()}reportProgress(t,e){e<=0||(console.log("Current progress:",(100*t/e).toFixed(1)+"%"),this.remainingCountEl.setText((e-t).toString()),this.importedCountEl.setText(t.toString()),this.progressBarInnerEl.style.width=(100*t/e).toFixed(1)+"%")}cancel(){this.cancelled=!0,this.progressBarEl.hide(),this.statusEl.hide()}hideStatus(){this.progressBarEl.hide(),this.statusEl.hide()}isCancelled(){return this.cancelled}},C1={importers:{onenote:{previouslyImportedIDs:[]}}},Zr=class extends Ht.Plugin{async onload(){this.importers={"apple-notes":{name:"Apple Notes",optionText:"Apple Notes",importer:br,helpPermalink:"import/apple-notes"},bear:{name:"Bear",optionText:"Bear (.bear2bk)",importer:xr,helpPermalink:"import/bear"},evernote:{name:"Evernote",optionText:"Evernote (.enex)",importer:Cr,helpPermalink:"import/evernote"},keep:{name:"Google Keep",optionText:"Google Keep (.zip/.json)",importer:Fr,helpPermalink:"import/google-keep"},html:{name:"HTML files",optionText:"HTML (.html)",importer:Ir,helpPermalink:"import/html"},onenote:{name:"Microsoft OneNote",optionText:"Microsoft OneNote",importer:Mr,helpPermalink:"import/onenote"},notion:{name:"Notion",optionText:"Notion (.zip)",importer:Pr,helpPermalink:"import/notion",formatDescription:"Export your Notion workspace to HTML format."},"roam-json":{name:"Roam Research",optionText:"Roam Research (.json)",importer:Hr,helpPermalink:"import/roam",formatDescription:"Export your Roam Research workspace to JSON format."},textbundle:{name:"Textbundle files",optionText:"Textbundle (.textbundle, .textpack)",importer:qr,helpPermalink:"import/textbundle"}},this.addRibbonIcon("lucide-import","Open Importer",()=>{new wi(this.app,this).open()}),this.addCommand({id:"open-modal",name:"Open importer",callback:()=>{new wi(this.app,this).open()}}),this.registerObsidianProtocolHandler("importer-auth",e=>{if(this.authCallback){this.authCallback(e),this.authCallback=void 0;return}new Ht.Notice("Unexpected auth event. Please restart the auth process.")})}onunload(){}async loadData(){return Object.assign({},C1,await super.loadData())}async saveData(e){await super.saveData(e)}registerAuthCallback(e){this.authCallback=e}},wi=class extends Ht.Modal{constructor(e,i){super(e);this.current=null;this.plugin=i,this.titleEl.setText("Import data into Obsidian"),this.modalEl.addClass("mod-importer");let r=Object.keys(i.importers);r.length>0&&(this.selectedId=r[0],this.updateContent())}updateContent(){let{contentEl:e,selectedId:i}=this,r=this.plugin.importers,o=r[i];e.empty();let a=new DocumentFragment;if(a.createSpan({text:"The format to be imported."}),o.formatDescription&&(a.createEl("br"),a.createSpan({text:o.formatDescription})),a.createEl("br"),a.createEl("a",{text:`Learn more about importing from ${o.name}.`,href:`https://help.obsidian.md/${o.helpPermalink}`}),new Ht.Setting(e).setName("File format").setDesc(a).addDropdown(s=>{for(let l in r)r.hasOwnProperty(l)&&s.addOption(l,r[l].optionText);s.onChange(l=>{r.hasOwnProperty(l)&&(this.selectedId=l,this.updateContent())}),s.setValue(this.selectedId)}),i&&r.hasOwnProperty(i)){let s=this.importer=new o.importer(this.app,this);if(s.notAvailable)return;e.createDiv("modal-button-container",l=>{l.createEl("button",{cls:"mod-cta",text:"Import"},c=>{c.addEventListener("click",async()=>{this.current&&this.current.cancel(),e.empty();let p=e.createDiv(),m=this.current=new Wr(p),y=e.createDiv("modal-button-container"),w=y.createEl("button",{cls:"mod-danger",text:"Stop"},E=>{E.addEventListener("click",()=>{m.cancel(),w.detach()})});try{await s.import(m)}finally{this.current===m&&(this.current=null),y.createEl("button",{text:"Upload more"},E=>{E.addEventListener("click",()=>this.updateContent())}),w.detach(),y.createEl("button",{cls:"mod-cta",text:"Done"},E=>{E.addEventListener("click",()=>this.close())}),m.hideStatus()}})})})}}onClose(){let{contentEl:e,current:i}=this;e.empty(),i&&i.cancel()}};
+/*! Bundled license information:
+
+sax/lib/sax.js:
+ (*! http://mths.be/fromcodepoint v0.1.0 by @mathias *)
+*/
+
+/* nosourcemap */
\ No newline at end of file
diff --git a/.obsidian/plugins/obsidian-importer/manifest.json b/.obsidian/plugins/obsidian-importer/manifest.json
new file mode 100644
index 0000000..8f6bfe3
--- /dev/null
+++ b/.obsidian/plugins/obsidian-importer/manifest.json
@@ -0,0 +1,10 @@
+{
+ "id": "obsidian-importer",
+ "name": "Importer",
+ "version": "1.6.19",
+ "minAppVersion": "0.15.0",
+ "description": "Import data from Notion, Evernote, Apple Notes, Microsoft OneNote, Google Keep, Bear, Roam, and HTML files.",
+ "author": "Obsidian",
+ "authorUrl": "https://obsidian.md",
+ "isDesktopOnly": false
+}
diff --git a/.obsidian/plugins/obsidian-importer/styles.css b/.obsidian/plugins/obsidian-importer/styles.css
new file mode 100644
index 0000000..6f9b809
--- /dev/null
+++ b/.obsidian/plugins/obsidian-importer/styles.css
@@ -0,0 +1,87 @@
+.modal.mod-importer {
+ max-height: var(--modal-height);
+ padding: var(--size-4-4) 0 0 0;
+ position: relative;
+ overflow: hidden;
+}
+.modal.mod-importer .modal-title {
+ padding: 0 var(--size-4-4);
+}
+.modal.mod-importer .modal-content {
+ overflow: auto;
+ padding: var(--size-4-4);
+ margin-bottom: calc(var(--input-height) + var(--size-4-8));
+ border-top: var(--border-width) solid var(--background-modifier-border);
+}
+.modal.mod-importer .modal-button-container {
+ margin: 0 0 0 calc(var(--size-4-4) * -1);
+ padding: var(--size-4-4);
+ gap: var(--size-4-2);
+ position: absolute;
+ bottom: 0;
+ background-color: var(--background-primary);
+ border-top: var(--border-width) solid var(--background-modifier-border);
+ width: 100%;
+}
+
+.importer-progress-bar {
+ width: 100%;
+ height: 8px;
+ background-color: var(--background-secondary);
+ overflow: hidden;
+ box-shadow: inset 0px 0px 0px 1px var(--background-modifier-border);
+ border-radius: var(--radius-s);
+}
+
+.importer-progress-bar-inner {
+ width: 0;
+ height: 100%;
+ background-color: var(--interactive-accent);
+}
+
+.importer-status {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ padding: var(--size-4-2) 0;
+}
+
+.importer-stats-container {
+ display: flex;
+ justify-content: space-evenly;
+ margin-top: var(--size-4-5);
+ margin-bottom: var(--size-4-5);
+}
+
+.importer-stat {
+ text-align: center;
+}
+
+.importer-stat-count {
+ font-size: var(--font-ui-large);
+}
+
+.importer-log {
+ overflow: auto;
+ flex-grow: 1;
+ font-family: var(--font-monospace);
+ font-size: var(--font-ui-smaller);
+ color: var(--text-muted);
+ border: 1px solid var(--background-modifier-border);
+ padding: var(--size-4-4);
+ background-color: var(--background-secondary);
+ border-radius: var(--radius-s);
+ max-height: 300px;
+ user-select: text;
+}
+
+.importer-log .list-item {
+ display: inline-block;
+ line-height: var(--line-height-normal);
+ white-space: pre;
+ margin: var(--size-2-1);
+}
+
+.importer-error {
+ color: var(--text-error);
+}
diff --git a/.obsidian/plugins/omnisearch/data.json b/.obsidian/plugins/omnisearch/data.json
index 584ccfe..8f48687 100644
--- a/.obsidian/plugins/omnisearch/data.json
+++ b/.obsidian/plugins/omnisearch/data.json
@@ -24,10 +24,10 @@
"showPreviousQueryResults": true,
"simpleSearch": false,
"tokenizeUrls": false,
- "fuzziness": "1",
- "weightBasename": 3,
- "weightDirectory": 2,
- "weightH1": 1.5,
+ "fuzziness": "2",
+ "weightBasename": 5,
+ "weightDirectory": 3.5,
+ "weightH1": 3.5,
"weightH2": 1.3,
"weightH3": 1.1,
"weightUnmarkedTags": 1.1,
diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index 634756c..5b1306d 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -4,109 +4,20 @@
"type": "split",
"children": [
{
- "id": "0d00cbfda05560f4",
+ "id": "98b7207724e72bb7",
"type": "tabs",
"children": [
{
- "id": "a63c5a40742c1d13",
+ "id": "8e9cd00e3f1b6144",
"type": "leaf",
"state": {
- "type": "markdown",
- "state": {
- "file": "01-Documentation/SIDEL/Master Filler/Master Filler - Notes.md",
- "mode": "source",
- "source": false
- },
+ "type": "empty",
+ "state": {},
"icon": "lucide-file",
- "title": "Master Filler - Notes"
- }
- },
- {
- "id": "866e2b2b7e3c81e6",
- "type": "leaf",
- "state": {
- "type": "markdown",
- "state": {
- "file": "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md",
- "mode": "source",
- "source": false
- },
- "icon": "lucide-file",
- "title": "Aplicaciones y Librerias"
- }
- },
- {
- "id": "c665e3b9ed860d0a",
- "type": "leaf",
- "state": {
- "type": "markdown",
- "state": {
- "file": "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/E5.007161 - Modifica O&U - SAE346 - Modified on PLC.md",
- "mode": "source",
- "source": false
- },
- "icon": "lucide-file",
- "title": "E5.007161 - Modifica O&U - SAE346 - Modified on PLC"
- }
- },
- {
- "id": "e14094a81778a8bf",
- "type": "leaf",
- "state": {
- "type": "markdown",
- "state": {
- "file": "01-Documentation/SIDEL/SIDEL - FLD.md",
- "mode": "source",
- "source": false
- },
- "icon": "lucide-file",
- "title": "SIDEL - FLD"
- }
- },
- {
- "id": "1f1bee6d92fe50e5",
- "type": "leaf",
- "state": {
- "type": "markdown",
- "state": {
- "file": "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - Notes.md",
- "mode": "source",
- "source": false
- },
- "icon": "lucide-file",
- "title": "T300881 - Notes"
- }
- },
- {
- "id": "7bf1188623139dd2",
- "type": "leaf",
- "state": {
- "type": "markdown",
- "state": {
- "file": "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - LINAK - Guides.md",
- "mode": "source",
- "source": false
- },
- "icon": "lucide-file",
- "title": "T300881 - LINAK - Guides"
- }
- },
- {
- "id": "6f4de4514b7c5b59",
- "type": "leaf",
- "state": {
- "type": "markdown",
- "state": {
- "file": "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - PAS4000 - PILz.md",
- "mode": "source",
- "source": false
- },
- "icon": "lucide-file",
- "title": "T300881 - PAS4000 - PILz"
+ "title": "New tab"
}
}
- ],
- "currentTab": 6
+ ]
}
],
"direction": "vertical"
@@ -272,11 +183,11 @@
}
}
],
- "currentTab": 4
+ "currentTab": 6
}
],
"direction": "horizontal",
- "width": 477.5,
+ "width": 369.5,
"collapsed": true
},
"left-ribbon": {
@@ -296,56 +207,59 @@
"publish:Publish changes...": false,
"obsidian-excalidraw-plugin:New drawing": false,
"obsidian-git:Open Git source control": false,
- "copilot:Open Copilot Chat": false
+ "copilot:Open Copilot Chat": false,
+ "markitdown:Convert to Markdown with Markitdown": false,
+ "obsidian-importer:Open Importer": false
}
},
- "active": "6f4de4514b7c5b59",
+ "active": "8e9cd00e3f1b6144",
"lastOpenFiles": [
- "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - Notes.md",
- "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - PAS4000 - PILz.md",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250329101837.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250329100104.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250329093003.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250329092938.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - LINAK - Guides.md",
- "05-COMS/01 - T300881 - Nestle SudAfrica/Buffer Logic.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Aplicaciones y Librerias.md",
- "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/E5.007161 - Modifica O&U - SAE346 - Modified on PLC.md",
+ "TODY - Punti da vedere.md",
+ "Palabras Tecnicas/Lista.md",
+ "Temporales/NAT - Switch.md",
+ "Temporales/Drawing 2024-10-13 20.08.30.excalidraw.md",
+ "Excalidraw/Drawing 2025-01-27 16.50.21.excalidraw.md",
+ "04-SIDEL/00 - MASTER/SIDEL - Mixer - Master - IO Tags.md",
+ "cronologiaI-93040-3074-ALPLA-BG-open-points.md",
+ "markitdown-output/adjuntos/TIA Portal Ethernet communication Rules V0.1.pdf",
+ "HTML import/TIA Portal Ethernet communication Rules V0.1.md",
+ "HTML import/Attachments/image051.jpg",
+ "HTML import/Attachments/image047.jpg",
+ "01-Documentation/SIDEL/MASTER/Communication/Untitled.md",
+ "HTML import/Attachments/image154.gif",
+ "HTML import/Attachments/image151.jpg",
+ "HTML import/Attachments/image149.jpg",
+ "HTML import/Attachments/image147.gif",
+ "HTML import/Attachments/image145.gif",
+ "HTML import/Attachments/image141.gif",
+ "HTML import/Attachments/image138.gif",
+ "HTML import/Attachments/image131.gif",
+ "HTML import/Attachments",
+ "HTML import",
+ "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/IO/IO - PLC - Software.md",
+ "01-Documentation/SIDEL/MASTER/Communication/contenidoImportado.md",
+ "01-Documentation/SIDEL/MASTER/Communication/adjuntos/temp_conversion.html",
+ "01-Documentation/SIDEL/MASTER/Communication/adjuntos/header.htm",
+ "01-Documentation/SIDEL/MASTER/Communication/adjuntos",
+ "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/Comm - Mixer - Filler.md",
+ "01-Documentation/SIDEL/MASTER/Communication",
+ "01-Documentation/SIDEL/MASTER",
+ "04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/contenidoImportado.md",
+ "04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/FDM RNF032 E5.007299.md",
+ "04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/E5.007299 - Modifica O&U - RNF032 - NOTES.md",
+ "04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/data.json",
+ "04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/E5.007299 - RNF032 - FDM.md",
"01-Documentation/SIDEL/SIDEL - FLD.md",
- "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/E5.007161 - Modifica O&U - SAE346 - Notes.md",
- "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/Pasted image 20250328160001.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - IPs.md",
- "05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - LINAK - Motor Setup.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250327104037.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250327101403.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250327100219.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250327100057.png",
- "05-COMS/01 - T300881 - Nestle SudAfrica/adjuntos/Pasted image 20250327100008.png",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Notas para crear nuevas aplicaciones.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/S7 Explorer/S7 Explorer - Csharp.md",
- "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-03-26 13.28.27.excalidraw.md",
- "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos",
- "04-SIDEL/01 - SAE463 - E5.006894-EXMU01UM - New Anton Paar/SAE463 - New Anton Paar - FDA.md",
- "04-SIDEL/01 - SAE463 - E5.006894-EXMU01UM - New Anton Paar/SAE463 - New Anton Paar.md",
- "01-Documentation/B&R/B&R Software.md",
- "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Reporte",
- "04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346",
- "01-Documentation/B&R",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Librerias utiles cSharp.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/NetDocsForLLM/NetDocsForLLM - Especifica base.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/NetDocsForLLM",
- "01-Documentation/SIDEL/Master Filler/Master Filler - Notes.md",
- "01-Documentation/SIDEL/Master Filler/adjuntos",
- "01-Documentation/GIT/Notes - Git - Gitea.md",
- "01-Documentation/SIDEL/Master Filler",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Scripts List.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos en Python/Script para obtener las ultimas versiones.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos en Python/Group Scripts Manager.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/ROI Editor/CtrEditor - Descripción de Funcionamiento.md",
- "07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/S7 Explorer",
- "04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/Reporte/adjuntos",
- "04-SIDEL/00 - MASTER/Reporte",
+ "04-SIDEL/00 - MASTER/Untitled.md",
+ "markitdown-output/TIA Portal Ethernet communication Rules V0.1.md",
+ "markitdown-output/1743758594713_TIA Portal Ethernet communication Rules V0.1.docx",
+ "markitdown-output/Specifiche per implemetare com. Siemens V6.5-It.md",
+ "01-Documentation/SIDEL/SIDEL - Passwords.md",
+ "04-SIDEL/03 - 5.007382-EXMU01UF - RVU008 - EQPT24731/5.007382-EXMU01UF - RVU008 - EQPT24731 - Notes.md",
+ "04-SIDEL/03 - 5.007382-EXMU01UF - RVU008 - EQPT24731/5.007382-EXMU01UF - RVU008 - EQPT24731 - Initial Data.md",
+ "01-Documentation/SIEMENS & WINCC/PLC Siemens/TCON, TDISCON, TSEND, and TRCV (TCP communication) instructions.md",
+ "04-SIDEL/00 - MASTER/SIDEL - Master - IPs.md",
+ "01-Documentation/SIEMENS & WINCC/PLC Siemens/Communication TSEND_C - TRCV_C.md",
"03-Revised/93789 Sipa Italia - Tinny - HSCounters - Piattaforma/Divider/Untitled.canvas",
"04-InLavoro/9..... MASTER Transport/Standard Transport/FB500 Logic.canvas",
"04-InLavoro/HENKEL/93040 - HENKEL - BowlingGreen/TL22-L25/Synoptic Change/Q3.canvas",
diff --git a/01-Documentation/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md b/01-Documentation/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md
new file mode 100644
index 0000000..0b01475
--- /dev/null
+++ b/01-Documentation/GIT/Git - Start New Repository with Visual Studio Code - VS Code.md
@@ -0,0 +1,37 @@
+
+### Create Repository
+***
+1. Open the working folder with File
+2. Ctr+Shit + P -> >Add Gitignore -> Select Python
+
+
+![[Pasted image 20250331130643.png]]
+
+![[Pasted image 20250331130826.png]]
+
+
+* With stage you accept this files to be on the Git.
+* After this you can start to Commit versions
+
+### Branch
+***
+
+![[Pasted image 20250331131244.png]]
+
+
+* Type the name of the new Branch
+
+The current branch will appear on the bottom-left
+
+![[Pasted image 20250331131430.png]]
+
+* The you can work on this branch, and make Commits
+
+
+* If wanted to merge this branch to ==main== follow this steps:
+ * Commit last modification on the actual branch
+ * Change branch to main
+ * Select merge branch and select the branch from were to merge
+ * After this the ==main== will have the last modifications. If the branch is not needed you can delete it.
+
+
diff --git a/01-Documentation/GIT/adjuntos/Pasted image 20250331130643.png b/01-Documentation/GIT/adjuntos/Pasted image 20250331130643.png
new file mode 100644
index 0000000..a6a8e21
Binary files /dev/null and b/01-Documentation/GIT/adjuntos/Pasted image 20250331130643.png differ
diff --git a/01-Documentation/GIT/adjuntos/Pasted image 20250331130826.png b/01-Documentation/GIT/adjuntos/Pasted image 20250331130826.png
new file mode 100644
index 0000000..bc928f8
Binary files /dev/null and b/01-Documentation/GIT/adjuntos/Pasted image 20250331130826.png differ
diff --git a/01-Documentation/GIT/adjuntos/Pasted image 20250331131244.png b/01-Documentation/GIT/adjuntos/Pasted image 20250331131244.png
new file mode 100644
index 0000000..500143d
Binary files /dev/null and b/01-Documentation/GIT/adjuntos/Pasted image 20250331131244.png differ
diff --git a/01-Documentation/GIT/adjuntos/Pasted image 20250331131430.png b/01-Documentation/GIT/adjuntos/Pasted image 20250331131430.png
new file mode 100644
index 0000000..5c0c7f3
Binary files /dev/null and b/01-Documentation/GIT/adjuntos/Pasted image 20250331131430.png differ
diff --git a/01-Documentation/SIDEL/Master Filler/Master Filler - Notes.md b/01-Documentation/SIDEL/Master Filler/Master Filler - Notes.md
index 4a82a3a..6fcee8c 100644
--- a/01-Documentation/SIDEL/Master Filler/Master Filler - Notes.md
+++ b/01-Documentation/SIDEL/Master Filler/Master Filler - Notes.md
@@ -2,3 +2,6 @@
CPU with DI HF
![[Pasted image 20250325173142.png|800]]
+
+
+
diff --git a/01-Documentation/SIDEL/Master Mixer/Mixer - Notes.md b/01-Documentation/SIDEL/Master Mixer/Mixer - Notes.md
new file mode 100644
index 0000000..797ae0d
--- /dev/null
+++ b/01-Documentation/SIDEL/Master Mixer/Mixer - Notes.md
@@ -0,0 +1,16 @@
+
+Equivalence comments table
+***
+
+P1 = WATER PUMP = SOFTSTART = 160Q2:E10.0 = 160K4:E11.0
+P2 = SYRUP PUMP = 163Q2:E10.1 = 163K8:E11.1
+P3 = OVERPRESSURE PRODUCT PUMP = 166Q2:E10.2
+P6 = RECYCLE PUMP = 169Q2:E11.3 = 169K8:E11.3
+
+___K_ : COMMAND RELAY - FEEDBACK SIGNAL
+___Q_ : TERMIC OVERLOAD SIGNAL
+
+301 : WATER PUMP = P1
+302 : SYRUP = P2
+303 : PRODUCT = P3
+306 : RECIRCULATING = P6
\ No newline at end of file
diff --git a/01-Documentation/SIDEL/SIDEL - Passwords.md b/01-Documentation/SIDEL/SIDEL - Passwords.md
new file mode 100644
index 0000000..8f511ca
--- /dev/null
+++ b/01-Documentation/SIDEL/SIDEL - Passwords.md
@@ -0,0 +1,33 @@
+
+![[Pasted image 20250401162127.png]]
+
+## Windows PC
+***
+administrator : 9-3urKW*
+sidel : _Ymk47h2&M
+Customer: sidel
+
+
+## ULTRA VNC
+***
+* Ultra VNC : r@c2PS
+
+Oppure
+
+* Ultra VNC : sysop
+
+## SAFETY
+***
+### Filler:
+
+Per Carica il SAFETY : **9991**
+
+Scrittura:
+SAFETY Filler Utilizzata per RVE045 e REV128
+### ==safeuro1==
+
+
+
+![[Pasted image 20250401162219.png]]
+
+Password Maintenance 4685
\ No newline at end of file
diff --git a/01-Documentation/SIDEL/adjuntos/Pasted image 20250401162127.png b/01-Documentation/SIDEL/adjuntos/Pasted image 20250401162127.png
new file mode 100644
index 0000000..8bd3614
Binary files /dev/null and b/01-Documentation/SIDEL/adjuntos/Pasted image 20250401162127.png differ
diff --git a/01-Documentation/SIDEL/adjuntos/Pasted image 20250401162219.png b/01-Documentation/SIDEL/adjuntos/Pasted image 20250401162219.png
new file mode 100644
index 0000000..9b807a0
Binary files /dev/null and b/01-Documentation/SIDEL/adjuntos/Pasted image 20250401162219.png differ
diff --git a/01-Documentation/SIEMENS & WINCC/IM Siemens - Profibus - Comissioning.md b/01-Documentation/SIEMENS & WINCC/IM Siemens - Profibus - Comissioning.md
new file mode 100644
index 0000000..c0e7ddd
--- /dev/null
+++ b/01-Documentation/SIEMENS & WINCC/IM Siemens - Profibus - Comissioning.md
@@ -0,0 +1,20 @@
+
+
+### Notes on comissioning:
+***
+On profibus the configuration if the configuration is not exact the node is not online. Need to check that all cards are correctly assigned and connected.
+
+
+### Profibus Address:
+***
+![[Pasted image 20250331100137.png]]
+
+
+### Leds
+***
+![[Pasted image 20250331100123.png]]
+
+
+### LEDs faults
+***
+![[Pasted image 20250331100112.png]]
\ No newline at end of file
diff --git a/01-Documentation/SIEMENS & WINCC/PLC Siemens/SCL Scripts/SCL Script to test DI Outputs.md b/01-Documentation/SIEMENS & WINCC/PLC Siemens/SCL Scripts/SCL Script to test DI Outputs.md
new file mode 100644
index 0000000..2f35c3b
--- /dev/null
+++ b/01-Documentation/SIEMENS & WINCC/PLC Siemens/SCL Scripts/SCL Script to test DI Outputs.md
@@ -0,0 +1,23 @@
+
+```pascal
+
+IF "CLK_0.2S" THEN
+ FOR #t := 0 TO 3 DO
+ IF "DBTEST".Count[#t] >= 128 THEN
+ "DBTEST".Count[#t + 1] := 1;
+ END_IF;
+ "DBTEST".Count[#t] := "DBTEST".Count[#t] * 2;
+
+ END_FOR;
+
+ IF "DBTEST".Count[0] + "DBTEST".Count[1] + "DBTEST".Count[2] + "DBTEST".Count[3] = 0 THEN
+ "DBTEST".Count[0] := 1;
+ END_IF;
+END_IF;
+
+"AB5" := "DBTEST".Count[0];
+"Tag_2" := "DBTEST".Count[1];
+"Tag_3" := "DBTEST".Count[2];
+"Tag_4" := "DBTEST".Count[3];
+
+```
\ No newline at end of file
diff --git a/01-Documentation/SIEMENS & WINCC/PLC Siemens/TCON, TDISCON, TSEND, and TRCV (TCP communication) instructions.md b/01-Documentation/SIEMENS & WINCC/PLC Siemens/TCON, TDISCON, TSEND, and TRCV (TCP communication) instructions.md
new file mode 100644
index 0000000..a66cf07
--- /dev/null
+++ b/01-Documentation/SIEMENS & WINCC/PLC Siemens/TCON, TDISCON, TSEND, and TRCV (TCP communication) instructions.md
@@ -0,0 +1,232 @@
+
+# SIMATIC S7 S7-1200 Programmable controller
+
+https://support.industry.siemens.com/cs/mdm/109759862?c=89820793099&lc=en-KZ
+
+==VIDEO:==
+https://support.industry.siemens.com/cs/document/109486139/how-you-configure-a-connection-in-the-tia-portal-?dti=0&dl=en&lc=nl-BE
+
+![[Pasted image 20250403170349.png|750]]
+
+
+| | | | | |
+|---|---|---|---|---|
+|Document:|S7-1200 Programmable controller (V4.2.3, 08/2018, English)||||
+|Type of topic:|Fact|
+
+
+
+TCON, TDISCON, TSEND, and TRCV (TCP communication) instructions
+
+
+
+#### Ethernet communication using TCP and ISO on TCP protocols
+
+| | |
+|---|---|
+||---
**Note**
#### TSEND_C and TRCV_C instructions
To help simplify the programming of PROFINET/Ethernet communication, the TSEND_C instruction and the TRCV_C instruction combine the functionality of the TCON, TDISCON. TSEND and TRCV instructions:
- TSEND_C combines the TCON, TDISCON and TSEND instructions.
- TRCV_C combines the TCON, TDISCON and TRCV instructions.
---|
+
+
+
+The following instructions control the communication process:
+
+- TCON establishes the TCP/IP connection between the client and server (CPU) PC.
+- TSEND and TRCV send and receive data.
+- TDISCON breaks the connection.
+
+The minimum size of data that you can transmit (TSEND) or receive (TRCV) is one byte; the maximum size is 8192 bytes. TSEND does not support the transmission of data from Boolean locations, and TRCV will not receive data into Boolean locations. For information transferring data with these instructions, see the section on [data consistency](https://support.industry.siemens.com/cs/mdm/109759862?c=65872045195&lc=en-kz&dl=en).
+
+TCON, TDISCON, TSEND, and TRCV operate asynchronously, which means that the job processing extends over multiple instruction executions. For example, you start a job for setting up and establishing a connection by executing an instruction TCON with parameter REQ = 1. Then you use additional TCON executions to monitor the job progress and test for job completion with parameter DONE.
+
+The following table shows the relationships between BUSY, DONE, and ERROR. Use the table to determine the current job status:
+
+Table: Interactions between the BUSY, DONE, and ERROR parameters
+
+| | | | |
+|---|---|---|---|
+|BUSY|DONE|ERROR|Description|
+|1|0|0|The job is being processed.|
+|0|1|0|The job successfully completed.|
+|0|0|1|The job ended with an error. The cause of the error is output at the STATUS parameter.|
+|0|0|0|No new job assigned.|
+
+#### TCON and TDISCON
+
+| | |
+|---|---|
+||---
**Note**
#### Initializing the communication parameters
After you insert the TCON instruction, use the "Properties" [of the instruction](https://support.industry.siemens.com/cs/mdm/109759862?c=86819412235&lc=en-kz&dl=en) to configure the [communication parameters](https://support.industry.siemens.com/cs/mdm/109759862?c=83326252299&lc=en-kz&dl=en). As you enter the parameters for the communication partners in the inspector window, STEP 7 enters the corresponding data in the instance DB for the instruction.
If you want to use a multi-instance DB, you must manually configure the DB on both CPUs.
---|
+
+
+
+Table: TCON and TDISCON instructions
+
+| | | |
+|---|---|---|
+|LAD / FBD||Description|
+|[](https://support.industry.siemens.com/dokumentation/image.aspx?docVersionId=114575606411&imageName=14772022155_DV_resource.Stream%2540PNG-en-US.png&Language=en-US)|"TCON_DB"( req:=_bool_in_, ID:=_undef_in_, done=>_bool_out_, busy=>_bool_out_, error=>_bool_out_, status=>_word_out_, connect:=_struct_inout_);|TCP and ISO on TCP: TCON initiates a communications connection from the CPU to a communication partner.|
+|[](https://support.industry.siemens.com/dokumentation/image.aspx?docVersionId=114575606411&imageName=14772064011_DV_resource.Stream%2540PNG-en-US.png&Language=en-US)|"TDISCON_DB"( req:=_bool_in_, ID:=_word_in_, done=>_bool_out_, busy=>_bool_out_, error=>_bool_out_, status=>_word_out_);|TCP and ISO on TCP: TDISCON terminates a communications connection from the CPU to a communication partner.|
+
+1 STEP 7 automatically creates the DB when you insert the instruction.
+
+
+
+Table: Data types for the parameters of TCON and TDISCON
+
+| | | | |
+|---|---|---|---|
+|Parameter|Declaration|Data type|Description|
+|REQ|IN|Bool|Starts the job to establish the connection specified in the ID upon a rising edge.|
+|ID|IN|CONN_OUC (Word)|Reference to the assigned connection.
Range of values: W#16#0001 to W#16#0FFF|
+|CONNECT
(TCON)|IN_OUT|VARIANT|Pointer to the connection description
- For TCP or UDP, use the structure TCON_IP_v4
For further information on TCON_IP_v4, refer to: ["Parameters for the PROFINET connection"](https://support.industry.siemens.com/cs/mdm/109759862?c=83326252299&lc=en-kz&dl=en).
- For ISO-on-TCP, use the structure TCON_IP_RFC
For further information on TCON_IP_RFC, refer to: ["Parameters for the PROFINET connection"](https://support.industry.siemens.com/cs/mdm/109759862?c=83326252299&lc=en-kz&dl=en).|
+|DONE|OUT|Bool|Status parameter with the following values:
- 0: Job not yet started or still in progress - 1: Job executed without errors|
+|BUSY|OUT|Bool|Status parameter with the following values:
- 0: Job not yet started or already completed - 1: Job not yet completed. A new job cannot be started|
+|ERROR|OUT|Bool|Status parameter ERROR:
- 0: No error - 1: Error occurred|
+|STATUS|OUT|Word|Status of the instruction|
+
+Both communication partners execute the TCON instruction to set up and establish the communication connection. You use parameters to specify the active and passive communication end point partners. After the connection is set up and established, it is automatically maintained and monitored by the CPU.
+
+If the connection is terminated due to a line break or due to the remote communications partner, for example, the active partner attempts to re-establish the configured connection. You do not have to execute TCON again.
+
+An existing connection is terminated and the set-up connection is removed when the TDISCON instruction is executed or when the CPU has gone into STOP mode. To set up and re-establish the connection, you must execute TCON again.
+
+Table: ERROR and STATUS condition codes for TCON and TDISCON
+
+| | | |
+| ----- | ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| ERROR | STATUS (W#16#...) | Explanation |
+| 0 | 0000 | Connection successfully established. |
+| 0 | 7000 | No job processing active |
+| 0 | 7001 | Start job execution; establish connection (TCON) or terminate connection (TDISCON). |
+| 0 | 7002 | Connection is being established (REQ irrelevant); establish connection (TCON) or terminate connection (TDISCON). |
+| 1 | 8085 | TCON: Connection ID is already in use. |
+| 1 | 8086 | TCON: The ID parameter is outside the valid range. |
+| 1 | 8087 | TCON: Maximum number of connections reached; no additional connection possible |
+| 1 | 8089 | TCON: The CONNECT parameter does not point to a connection description or the connection description was created manually. |
+| 1 | 809A | TCON: The structure at the CONNECT parameter is not supported or the length is invalid. |
+| 1 | 809B | TCON: The ID of the local device in the connection description does not correspond to the CPU or the CP, or it is "0". |
+| 1 | 80A0 | Group error for error codes W#16#80A1 and W#16#80A2. |
+| 1 | 80A1 | TCON: For TCP/UDP (TCON_IP_v4): Connection or port is already in use. |
+| 1 | 80A2 | TCON: Local or remote port is being used by the system. |
+| 1 | 80A3 | TCON: Value at the ID parameter is already being used by a connection (TCON) that was created using the user program. The connection uses the identical ID, but different connection settings at the parameter CONNECT. |
+| 1 | 80A4 | TCON: IP address of the remote endpoint of the connection is invalid or it corresponds to the IP address of the local partner. |
+| 1 | 80A5 | TCON: Connection ID is already in use. |
+| 1 | 80A7 | TCON: Communication error: You executed "TDISCON" before "TCON" had completed. |
+| 1 | 80B2 | TCON: The CONNECT parameter points to a data block that was generated with the attribute "Only store in load memory". |
+| 1 | 80B3 | Inconsistent parameter assignment: Group error for error codes W#16#80A0 to W#16#80A2, W#16#80A4, W#16#80B4 to W#16#80B9. |
+| 1 | 80B4 | TCON: Only with TCON_IP_RFC The local T selector was not specified or the first byte does not contain the value 0x0E or the local T selector starts with "SIMATIC-". |
+| 1 | 80B5 | TCON: Only passive connection establishment is permitted for connection type 13 = UDP (Parameter active_est of the structure TCON_IP_v4 has the value TRUE).. |
+| 1 | 80B6 | TCON: Parameter assignment error in the connection_type parameter of the data block for connection description.
- Only valid with TCON_IP_v4: 0x11, 0x0B and 0x13. - Only valid with TCON_IP_RFC: 0x0C and 0x12 |
+| 1 | 80B7 | TCON: With TCON_IP_v4:
- TCP (active connection establishment): Remote port is "0". - TCP (passive connection establishment): Local port is "0". - UDP: Local port is "0".
TCON: With TCON_IP_RFC:
- Local (local_tselector) or remote (remote_tselector) T selector was specified with a length of more than 32 bytes. - For TSelLength of the T selector (local or remote), a length greater than 32 was entered. - Error in the length of the IP address of the specific connection partner. |
+| 1 | 80B8 | TCON: Parameter ID in the local connection description (structure at parameter CONNECT) and parameter ID of the instruction are different. |
+| 1 | 80C3 | TCON: All [connection](https://support.industry.siemens.com/cs/mdm/109759862?c=89820232331&lc=en-kz&dl=en) resources are in use. |
+| 1 | 80C4 | Temporary communication error:
- The connection cannot be established at this time (TCON). - The interface is currently receiving new parameters (TCON and TDISCON). - The configured connection is currently being removed by a "TDISCON" instruction (TCON). |
+| 1 | 80C5 | TCON: The remote partner refuses to establish the connection, has terminated the connection or actively ended it. |
+| 1 | 80C6 | TCON: The remote partner cannot be reached (network error). |
+| 1 | 80C7 | TCON: Execution timeout. |
+| 1 | 80C8 | TCON: ID is used by a connection created by the user program, which uses the same connection description at the CONNECT parameter. |
+| 1 | 80C9 | TCON: Validation of the remote partner failed. The remote partner that wants to establish the connection does not match the defined partner of the structure at the CONNECT parameter. |
+| 1 | 80CE | TCON: The IP address of the local interface is 0.0.0.0. |
+
+#### TSEND and TRCV
+
+| | |
+|---|---|
+||---
**Note**
When using PROFINET Open User communication, if you execute a TSEND instruction without a corresponding TRCV instruction executing on the remote device, then the TSEND instruction may reside indefinitely in a "Busy State", waiting for the TRCV instruction to receive the data. In this state, the TSEND instruction "Busy" output is set, and the "Status" output has a value of "0x7002". This condition may occur if you are transferring more than 4096 bytes of data. The issue is resolved at the next execution of the TRCV instruction.
---|
+
+
+
+Table: TSEND and TRCV instructions
+
+| | | |
+|---|---|---|
+|LAD / FBD|SCL|Description|
+|[](https://support.industry.siemens.com/dokumentation/image.aspx?docVersionId=114575606411&imageName=53306541323_DV_resource.Stream%2540PNG-en-US.png&Language=en-US)|"TSEND_DB"( req:=_bool_in_, ID:=_word_in_, len:=_udint_in_, done=>_bool_out_, busy=>_bool_out_, error=>_bool_out_, status=>_word_out_, data:=_variant_inout_);|TCP and ISO on TCP: TSEND sends data through a communication connection from the CPU to a partner station.|
+|[](https://support.industry.siemens.com/dokumentation/image.aspx?docVersionId=114575606411&imageName=53306537099_DV_resource.Stream%2540PNG-en-US.png&Language=en-US)|"TRCV_DB"( en_r:=_bool_in_, ID:=_word_in_, len:=_udint_in_, adhoc:=_bool_in_, ndr=>_bool_out_, busy=>_bool_out_, error=>_bool_out_, status=>_word_out_, rcvd_len=>_udint_out_, data:=_variant_inout_);|TCP and ISO on TCP: TRCV receives data through a communication connection from a partner station to the CPU.|
+
+1 STEP 7 automatically creates the DB when you insert the instruction.
+
+
+
+Table: Data types for the parameters of TSEND and TRCV
+
+| | | | |
+|---|---|---|---|
+|Parameter and type| |Data type|Description|
+|REQ|IN|Bool|TSEND: Starts the send job on a rising edge. The data is transferred from the area specified by DATA and LEN.|
+|EN_R|IN|Bool|TRCV: Enables the CPU to receive; with EN_R = 1, the TRCV is ready to receive. The receive job is processed.|
+|ID|IN|CONN_OUC (Word)|Reference to the associated connection. ID must be identical to the associated parameter ID in the local connection description.
Value range: W#16#0001 to W#16#0FFF|
+|LEN|IN|UDInt|Maximum number of bytes to be sent (TSEND) or received (TRCV):
- Default = 0: The DATA parameter determines the length of the data to be sent (TSEND) or received (TRCV). - Ad hoc mode = 65535: A variable length of data is set for reception (TRCV).|
+|ADHOC|IN|Bool|TRCV: Optional parameter (hidden)
Ad hoc mode request for connection type TCP.|
+|DATA|IN_OUT|Variant|Pointer to send (TSEND) or receive (TRCV) data area; data area contains the address and length. The address refers to I memory, Q memory, M memory, or a DB.|
+|DONE|OUT|Bool|TSEND:
- 0: Job not yet started or still running. - 1: Job executed without error.|
+|NDR|OUT|Bool|TRCV:
- NDR = 0: Job not yet started or still running. - NDR = 1: Job successfully completed.|
+|BUSY|OUT|Bool|- BUSY = 1: The job is not yet complete. A new job cannot be triggered. - BUSY = 0: Job is complete.|
+|ERROR|OUT|Bool|ERROR = 1: Error occurred during processing. STATUS provides detailed information on the type of error|
+|STATUS|OUT|Word|Status information including error information. (Refer to the Error and Status condition codes in the table below.)|
+|RCVD_LEN|OUT|UDInt|TRCV: Amount of data actually received in bytes|
+
+| | |
+|---|---|
+||---
**Note**
The TSEND instruction requires a low-to-high transition at the REQ input parameter to start a send job. The BUSY parameter is then set to 1 during processing. Completion of the send job is indicated by either the DONE or ERROR parameters being set to 1 for one scan. During this time, any low-to-high transition at the REQ input parameter is ignored.
---|
+
+
+
+#### TRCV Operations
+
+The TRCV instruction writes the received data to a receive area that is specified by the following two variables:
+
+- Pointer to the start of the area
+- Length of the area or the value supplied at the LEN input if not 0
+
+ | | |
+ |---|---|
+ ||---
**Note**
The default setting of the LEN parameter (LEN = 0) uses the DATA parameter to determine the length of the data being transmitted. It is recommended that the data transmitted by the TSEND instruction be the same size as the DATA parameter of the TRCV instruction.
If using the default setting of the LEN parameter and it is necessary to send the data in segments smaller than the DATA parameter size, the following applies. It is recommended to keep the EN_R bit high until the corresponding TSEND transfers the appropriate amount of data to fill the TRCV DATA parameter. If the size of the data transmitted from TSEND does not equal the TRCV DATA parameter size, TRCV remains in a busy status (status code: 7002) while the EN_R bit is high until the overall size of the data transmitted from TSEND equals the TRCV DATA parameter size. If the EN_R bit of TRCV is pulsed, it needs to be pulsed the same number of times as TSEND is executed to receive the data.
The TRCV DATA parameter buffer does not display the new data received until the data size equals the DATA parameter buffer size.
---|
+
+
+
+
+As soon as all the job data has been received, TRCV transfers it to the receive area and sets NDR to 1.
+
+Table: Entering the data into the receive area
+
+| | | | | |
+|---|---|---|---|---|
+|Protocol variant|Entering the data in the receive area|Parameter "connection_type"|Value of the LEN parameter|Value of the RCVD_LEN parameter (bytes)|
+|TCP|Ad hoc mode|B#16#11|Selected with the TRCV instruction ADHOC input|1 to 1472|
+|TCP|Data reception with specified length|B#16#11|0 (recommended) or 1 to 8192, except 65535|1 to 8192|
+|ISO on TCP|Ad hoc mode|B#16#12|65535|1 to 1472|
+|ISO on TCP|protocol-controlled|B#16#12|0 (recommended) or 1 to 8192, except 65535|1 to 8192|
+
+| | |
+|---|---|
+||---
**Note**
#### Ad hoc mode
The "ad hoc mode" exists with the TCP and ISO on TCP protocol variants. To configure the TRCV instruction for ad hoc mode, set the ADHOC instruction input parameter. The receive area is identical to the area formed by DATA. The length of the received data will be output to the parameter RCVD_LEN. Immediately after receiving a block of data, TRCV enters the data in the receive area and sets NDR to 1.
If you store the data in an "optimized" DB (symbolic only), you can receive data only in arrays of Byte, Char, USInt, and SInt data types.
---|
+
+
+
+| | |
+|---|---|
+||---
**Note**
#### Importing of S7-300/400 STEP 7 projects containing "ad hoc mode" into the S7-1200
In S7-300/400 STEP 7 projects, "ad hoc mode" is selected by assigning "0" to the LEN parameter. In the S7-1200, you configure the TRCV instruction for ad hoc mode by setting the ADHOC instruction input parameter.
If you import an S7-300/400 STEP 7 project containing "ad hoc mode" into the S7-1200, you must change the LEN parameter to "65535".
---|
+
+
+
+Table: ERROR and STATUS condition codes for TSEND and TRCV
+
+| | | |
+|---|---|---|
+|ERROR|STATUS|Description|
+|0|0000|- Send job completed without error (TSEND) - New data accepted: The current length of the received data is shown in RCVD_LEN (TRCV).|
+|0|7000|- No job processing active (TSEND) - Block not ready to receive (TRCV)|
+|0|7001|- Start of job processing, data being sent: During this processing the operating system accesses the data in the DATA send area (TSEND). - Block is ready to receive, receive job was activated (TRCV).|
+|0|7002|- Follow-on instruction execution (REQ irrelevant), job being processed: The operating system accesses the data in the DATA send area during this processing (TSEND). - Follow-on instruction execution, receive job being processed: Data is written to the receive area during this processing. For this reason, an error could result in inconsistent data in the receive area (TRCV).|
+|1|8085|- LEN parameter is greater than the largest permitted value (TSEND) and (TRCV). - LEN or DATA parameter changed since the first instruction execution (TRCV).|
+|1|8086|The ID parameter is not in the permitted address range.|
+|1|8088|The LEN parameter is larger than the memory area specified in DATA.|
+|1|80A1|Communications error:
- The specified connection has not yet established (TSEND and TRCV). - The specified connection is currently being terminated. Transmission or a receive job over this connection is not possible (TSEND and TRCV). - The interface is being reinitialized (TSEND). - The interface is receiving new parameters (TRCV).|
+|1|80C3|Internal lack of [connection](https://support.industry.siemens.com/cs/mdm/109759862?c=89820232331&lc=en-kz&dl=en) resources: A block with this ID is already being processed in a different priority class.|
+|1|80C4|Temporary communications error:
- The connection to the communications partner cannot be established at this time. - The interface is receiving new parameter settings, or the connection is currently being established.|
+
+#### Connection Ethernet protocols
+
+Every CPU has an integrated PROFINET port, which supports standard PROFINET communications. The TSEND_C, TRCV_C, TSEND and TRCV instructions all support the TCP and ISO on TCP Ethernet protocols.
+
+Refer to "Device Configuration: [Configuring the Local/Partner connection path](https://support.industry.siemens.com/cs/mdm/109759862?c=86819412235&lc=en-kz&dl=en)" for more information.
\ No newline at end of file
diff --git a/01-Documentation/SIEMENS & WINCC/PLC Siemens/adjuntos/Pasted image 20250403170349.png b/01-Documentation/SIEMENS & WINCC/PLC Siemens/adjuntos/Pasted image 20250403170349.png
new file mode 100644
index 0000000..358bd1f
Binary files /dev/null and b/01-Documentation/SIEMENS & WINCC/PLC Siemens/adjuntos/Pasted image 20250403170349.png differ
diff --git a/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100112.png b/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100112.png
new file mode 100644
index 0000000..329eda6
Binary files /dev/null and b/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100112.png differ
diff --git a/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100123.png b/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100123.png
new file mode 100644
index 0000000..15a20e3
Binary files /dev/null and b/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100123.png differ
diff --git a/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100137.png b/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100137.png
new file mode 100644
index 0000000..dabd1da
Binary files /dev/null and b/01-Documentation/SIEMENS & WINCC/adjuntos/Pasted image 20250331100137.png differ
diff --git a/01-Documentation/Teknors/Teknors p-Cloud.md b/01-Documentation/Teknors/Teknors p-Cloud.md
new file mode 100644
index 0000000..e31b242
--- /dev/null
+++ b/01-Documentation/Teknors/Teknors p-Cloud.md
@@ -0,0 +1,28 @@
+***
+
+Rev. 0.1
+
+Gestione Ordini e Backups tra SIDEL e TEKNORS
+
+![[Pasted image 20250402162556.png]]
+
+![[Pasted image 20250402162539.png]]
+
+https://u.pcloud.link/publink/show?code=kZ0YbGVZfYOWcrHotzbr0wOoopeht0qJ9Y4V
+
+#### Pcloud
+***
+1. Info Ordini
+ SIDEL Carica le Informazioni e Documentazione dell’ordine assegnato nella carpetta **1-Info Ordini**
+2. Work in Progress
+ TEKNORS **Sposta** la carpetta dell’ordine in lavorazione nella carpetta -> **2-Work in Progress**
+3. Per Sidel
+ A progetto terminato TEKNORS **sposta** la carpetta del progetto da **2-Work in Progress** a **3-Per Sidel**
+4. Archiviati\Anno
+ La carpetta copiata in **3-Per Sidel** deve essere copiata anche in **4-Archiviati>202x**
+5. In Avviamento
+ Cartella da utilizzare per gli ordini in avviamento
+
+
+
+
diff --git a/01-Documentation/Teknors/adjuntos/Pasted image 20250402162539.png b/01-Documentation/Teknors/adjuntos/Pasted image 20250402162539.png
new file mode 100644
index 0000000..2afc62b
Binary files /dev/null and b/01-Documentation/Teknors/adjuntos/Pasted image 20250402162539.png differ
diff --git a/01-Documentation/Teknors/adjuntos/Pasted image 20250402162556.png b/01-Documentation/Teknors/adjuntos/Pasted image 20250402162556.png
new file mode 100644
index 0000000..c5027fc
Binary files /dev/null and b/01-Documentation/Teknors/adjuntos/Pasted image 20250402162556.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Notes.md b/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Notes.md
index 23ca63f..54ca16d 100644
--- a/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Notes.md
+++ b/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Notes.md
@@ -1,3 +1,5 @@
+***
+
This script works with a DB like this:
@@ -11,3 +13,212 @@ Use the XML file Exported from :
Then drag an drop in offline the DB to export on the Workspace area
+
+![[Pasted image 20250401210005.png|800]]
+Export the DB5100 to XML file
+
+![[Pasted image 20250401210056.png]]
+
+On the Excel Import the XML ==if needed==.
+
+![[Pasted image 20250401210147.png|800]]
+
+![[Pasted image 20250401210230.png|800]]
+
+Next, use Excel to categorize each Alarm into Sections and hide any unused Alarms.
+
+After editing the DB in Excel, export it back to the DB using the same XML file you used for importing. Always use the XML file generated by Tia Portal for exporting, as the Excel script requires its header to create the final file.
+
+![[Pasted image 20250401210439.png|800]]
+
+After this go to Tia Portal and Import the xml file
+
+![[Pasted image 20250401210828.png]]
+
+After this, the DB will only contain visible Alarms and will have every section configured.
+
+
+
+* Set X on Hidden: will add X to every hidden row in the Excel sheet.
+* Restore Hidden: will hide all rows with an X in the Hidden column.
+* Unhide All: Will unhide all rows.
+* Import: will decode the XML file into the Excel sheet.
+* Export: The latest XML file exported from Tia Portal will be used to recreate the DB based on the current Excel sheet configuration.
+
+***
+
+# Tia Portal Alarm Management Tool Documentation - DB5100
+
+## Overview
+
+This Excel-based tool facilitates the management of alarms in Siemens TIA Portal projects by allowing users to:
+
+- Import alarm configurations from TIA Portal XML exports
+- Modify alarm properties, comments, and section assignments
+- Export modified configurations back to TIA Portal
+- Generate alarm mapping files for SIPA supervision systems
+
+The tool simplifies alarm management through a user-friendly Excel interface rather than working directly within TIA Portal.
+
+## Main Workflow
+
+1. Export the DB5100 (Alarm Database) from TIA Portal as XML
+2. Import the XML into this Excel tool
+3. Modify alarm properties, comments, and section assignments
+4. Hide unwanted alarms (rather than deleting them)
+5. Export the modified configuration back to XML
+6. Import the XML back into TIA Portal
+7. Optionally generate a SIPA supervision system export file
+
+## Button Functions
+
+### Import
+
+![[Pasted image 20250401212140.png]]
+
+**Function**: `ImportSiemensXML()`
+
+This button imports alarm data from a Siemens TIA Portal XML file into the Excel sheet:
+
+1. Prompts user to select an XML file
+2. Validates the file (checks for expiration date)
+3. Reads alarm configurations from the XML structure
+4. Populates the Excel sheet with:
+ - Alarm numbers
+ - DB addresses (DB, Byte, Bit)
+ - Priority settings
+ - Section assignments
+ - Alarm descriptions
+5. Preserves existing row states (hidden/visible)
+
+**Notes**:
+
+- The import preserves existing configuration where possible
+- Alarms with value "0" are automatically hidden
+- Alarm sections are displayed as "X" marks in the appropriate columns
+
+### Export
+
+![[Pasted image 20250401212212.png]]
+**Function**: `ExportSiemensXML()`
+
+This button exports the current Excel sheet data back to a Siemens XML file:
+
+1. Prompts user to select the target XML file (typically the original import file)
+2. Validates input data (checks for duplicate alarm numbers)
+3. Updates XML structures with modified values from Excel:
+ - Reads only visible rows (hidden rows are excluded from export)
+ - Updates alarm sections, priorities, and other properties
+ - Preserves alarm descriptions
+4. Saves the modified XML file for import into TIA Portal
+
+**Notes**:
+
+- Only visible rows are included in the export
+- The tool maintains the XML structure required by TIA Portal
+- The export correctly handles special data types (Bool, Byte, Int)
+
+### Set X on Hidden
+
+![[Pasted image 20250401212236.png]]
+**Function**: `MarcarFilasOcultas()`
+
+This button marks all currently hidden rows with an "X" in the Hidden column (column 17):
+
+1. Scans all rows in the sheet
+2. If a row is hidden, places an "X" in column 17
+3. If a row is visible, clears column 17
+
+**Purpose**: This function allows you to "remember" which rows are hidden so you can restore this state later.
+
+### Restore Hidden
+
+![[Pasted image 20250401212251.png]]
+**Function**: `OcultarFilasSegunMarca()`
+
+This button hides all rows that have an "X" in the Hidden column (column 17):
+
+1. Makes all rows visible first
+2. Scans column 17 for all rows
+3. If an "X" is found, hides that row
+4. Displays a progress bar during processing
+5. Reports the number of rows hidden when complete
+
+**Purpose**: Restores a previously saved hidden/visible state.
+
+### Unhide All
+
+![[Pasted image 20250401212305.png]]
+**Function**: `MostrarTodasLasFilas()`
+
+This button makes all rows in the worksheet visible:
+
+1. Simply removes the hidden state from all rows
+2. No other changes are made to the data
+
+**Purpose**: Shows all alarms, including those previously hidden.
+
+### Export to SIPA
+
+![[Pasted image 20250401212322.png]]
+**Function**: `Exportar_A_SIPA()`
+
+This button exports alarm data to a format compatible with SIPA supervision systems:
+
+1. Validates input data (checks for duplicate alarm numbers)
+2. Transfers data to the "Per Supervisore SIPA" worksheet:
+ - Reformats alarm/warning indicators
+ - Creates appropriate tag names from DB/Byte/Bit values
+ - Combines section assignments into a comma-separated list
+ - Transfers priorities and descriptions
+ - Indicates used/unused alarms
+3. Offers to save the SIPA worksheet as a separate Excel file
+4. Provides confirmation when complete
+
+**Notes**:
+
+- Only visible rows are included in the SIPA export
+- The "Per Supervisore SIPA" worksheet must exist
+- The export uses color-coding: blue for warnings, red for alarms
+
+This button will generate a file based on the current state of the Excel Sheet definition.
+
+![[Pasted image 20250401211017.png|800]]
+
+## Data Structure
+
+### Excel Sheet Layout
+
+The main Excel sheet has the following column structure:
+
+|Column|Content|Description|
+|---|---|---|
+|B|Alarm Number|Unique identifier for each alarm|
+|C|DB|Data Block number|
+|D|Byte|Byte address within DB|
+|E|Bit|Bit address within Byte|
+|F|Priority|Alarm priority level|
+|G-K|Section.1-5|"X" indicates alarm belongs to this section|
+|L|Value|Value status|
+|M|Disable|"X" indicates alarm is disabled|
+|N|Is Warning|"X" indicates this is a warning (not alarm)|
+|O|Ons|On/off status|
+|P|Description|Alarm text description|
+|Q|Hidden|Used by the tool to track hidden rows|
+
+### SIPA Export Format
+
+The "Per Supervisore SIPA" sheet has the following structure:
+
+|Column|Content|Description|
+|---|---|---|
+|A|Alarm/Warning|Indicator with color coding|
+|B|Number|Alarm number|
+|C|Tag|DB address in format DBx.DBXy.z|
+|D|Sections|Comma-separated list of section numbers|
+|E|Priority|Priority level|
+|F|Description|Alarm text description|
+|G|Used|Symbol if alarm is active, "-" if disabled|
+
+
+
diff --git a/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Script en VBA for Import and Export DB from Tia Portal.md b/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Script en VBA for Import and Export DB from Tia Portal.md
index cea5c49..a0e1454 100644
--- a/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Script en VBA for Import and Export DB from Tia Portal.md
+++ b/01-Documentation/VB.NET Scripts VBA/DB5100 - Supervisor SIPA - Script en VBA for Import and Export DB from Tia Portal.md
@@ -1186,15 +1186,3 @@ End Function
The password for the VBA is: 3vpjTCr^AuyEw&
-This script works with a DB like this:
-
-![[Pasted image 20240924113131.png]]
-
-Use the XML file Exported from :
-
-![[Pasted image 20240924113222.png]]
-
-![[Pasted image 20240924113305.png]]
-
-Then drag an drop in offline the DB to export on the Workspace area
-
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210005.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210005.png
new file mode 100644
index 0000000..81cbac3
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210005.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210056.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210056.png
new file mode 100644
index 0000000..5894d7b
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210056.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210147.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210147.png
new file mode 100644
index 0000000..fe1d4c7
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210147.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210230.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210230.png
new file mode 100644
index 0000000..9be810e
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210230.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210439.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210439.png
new file mode 100644
index 0000000..1ac0a20
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210439.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210828.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210828.png
new file mode 100644
index 0000000..8529547
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401210828.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401211017.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401211017.png
new file mode 100644
index 0000000..0b49c9d
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401211017.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401211038.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401211038.png
new file mode 100644
index 0000000..50cb541
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401211038.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212140.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212140.png
new file mode 100644
index 0000000..8d91554
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212140.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212212.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212212.png
new file mode 100644
index 0000000..9569d69
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212212.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212236.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212236.png
new file mode 100644
index 0000000..6f129f2
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212236.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212251.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212251.png
new file mode 100644
index 0000000..26d9b99
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212251.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212305.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212305.png
new file mode 100644
index 0000000..3538ddb
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212305.png differ
diff --git a/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212322.png b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212322.png
new file mode 100644
index 0000000..47087b0
Binary files /dev/null and b/01-Documentation/VB.NET Scripts VBA/adjuntos/Pasted image 20250401212322.png differ
diff --git a/04-SIDEL/00 - MASTER/SIDEL - Master - IPs.md b/04-SIDEL/00 - MASTER/SIDEL - Master - IPs.md
new file mode 100644
index 0000000..2b3fb30
--- /dev/null
+++ b/04-SIDEL/00 - MASTER/SIDEL - Master - IPs.md
@@ -0,0 +1,54 @@
+***
+### Filler : 10.1.20.11
+### Mixer : 10.1.33.11
+
+
+
+
+
+| Links for bottle conveyors Sidel 92.1 (10.1.92.11) | | | | | | | | | | | | |
+| -------------------------------------------------- | -------------------------------------- | ---------- | --- | --- | --- | --- | ----- | ---------------------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ---------------------- | --- |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | no | 100ms | _ | _ | B&R | Combi | |
+| TCP | 2002 | 2 | | | SR | no | 100ms | _ | _ | Siemens S7-1500 | Tilter | |
+| TCP | 2003 | 3 | | | SR | no | 100ms | _ | _ | Siemens S7-1500 | Cooler | |
+| TCP | 2004 | 4 | | | SR | no | 100ms | _ | _ | ? | Sleever 1 | |
+| TCP | 2005 | 5 | | | SR | no | 100ms | _ | _ | ? | Sleever 2 | |
+| TCP | 2006 | 6 | | | SR | no | 100ms | _ | _ | ? | Packer | |
+| TCP | 2007 | 7 | | | SR | no | 100ms | _ | _ | Siemens S7-1500 | Pack divider | |
+| TCP | 2008 | 8 | | | SR | no | 100ms | _ | _ | ? | Palletizer | |
+| | | | | | | | | | | | | |
+| Links for Sidel Combi 20.1 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | yes | 100ms | 10.1.92.11 | 2001 | Siemens S7-1516 | bottle & pack conveyor | |
+| | | | | | | | | | | | | |
+| Links for Vetromeccanica Tilter 6.1 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | - | | | SR | yes | - | 10.1.92.11 | 2002 | Siemens S7-1516 | bottle & pack conveyor | |
+| | | | | | | | | | | | | |
+| Links for Sidel Cooler 60.1 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | Yes | 100ms | 10.1.92.11 | 2003 | Siemens S7-1516 | bottle & pack conveyor | |
+| | | | | | | | | | | | | |
+| Links for Clever sleever 38.1 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | Yes | 100ms | 10.1.92.11 | 2004 | Siemens S7-1516 | bottle & pack conveyor | |
+| | | | | | | | | | | | | |
+| Links for Clever sleever 38.2 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | Yes | 100ms | 10.21.92.11 | 2005 | Siemens S7-1516 | bottle & pack conveyor | |
+| | | | | | | | | | | | | |
+| Links for Sidel Packer 41.1 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | yes | 100ms | 10.1.92.11 | 2006 | Siemens S7-1516 | bottle & pack conveyor | |
+| | | | | | | | | | | | | |
+| Links for LM Pack divider 10.1 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | yes | 100ms | 10.1.92.11 | 2007 | Siemens S7-1516 | bottle & pack conveyor | |
+| | | | | | | | | | | | | |
+| Links for Palletizer 53.1 | | | | | | | | | | | | |
+| Protocole | Local Tsap (ASC) or port TCP/UDP | ID Number | | | M | ACT | Sync. | Partner TCP/IP Address | Partner Tsap (ASC) or port TCP/UDP | Partner PLC type/ref Ethernet coupler used for communication For Iso-on-tcp protocol, rack and slot | Partner Machine | |
+| TCP | 2001 | 1 | | | SR | yes | 100ms | 10.1.92.11 | 2008 | Siemens S7-1516 | bottle & pack conveyor | |
+
+
+![[H1002261 RG Brands Network layout rev02.png]]
\ No newline at end of file
diff --git a/04-SIDEL/00 - MASTER/SIDEL - Mixer - Equivalences.md b/04-SIDEL/00 - MASTER/SIDEL - Mixer - Equivalences.md
new file mode 100644
index 0000000..37d058f
--- /dev/null
+++ b/04-SIDEL/00 - MASTER/SIDEL - Mixer - Equivalences.md
@@ -0,0 +1,19 @@
+
+## Legend of equivalences
+
+- ___K_ : COMMAND RELAY - FEEDBACK SIGNAL (Señales de retroalimentación)
+- ___Q_ : TERMIC OVERLOAD SIGNAL (Señales de sobrecarga térmica)
+- P1 = WATER PUMP = SOFTSTART = 301
+- P2 = SYRUP PUMP = 302
+- P3 = OVERPRESSURE PRODUCT PUMP = 303
+- P6 = RECYCLE PUMP = 306
+
+* Anton Paar = Analizatore
+
+301 : WATER PUMP = P1
+302 : SYRUP = P2
+303 : PRODUCT = P3
+306 : RECIRCULATING = P6
+
+NORGREN Valve has Analog Input and Ouput to control PCM306 - Gas Pressure Injection (CO2)
+NORGREN : Gasatura Produtto CO2
\ No newline at end of file
diff --git a/04-SIDEL/00 - MASTER/SIDEL - Mixer - Master - IO Tags.md b/04-SIDEL/00 - MASTER/SIDEL - Mixer - Master - IO Tags.md
new file mode 100644
index 0000000..4736917
--- /dev/null
+++ b/04-SIDEL/00 - MASTER/SIDEL - Mixer - Master - IO Tags.md
@@ -0,0 +1,465 @@
+
+| Tag Name | Type | Data Type | Tag Comment |
+| -------------------------------- | ------ | --------- | ----------------------------------------------------------------------- |
+| AI_CIP_CIP_Total_Time | Inputs | Int | "AI_CIP_CIP_Total_Time" |
+| AI_CIP_SetPoint_Temeperature | Inputs | Byte | "AI_CIP_SetPoint_Temeperature" |
+| AI_SYRUP_Cip_Phase | Inputs | Byte | "AI_SYRUP_Cip_Phase" |
+| AI_SYRUP_Cip_RemaningTime | Inputs | Byte | "AI_SYRUP_Cip_RemaningTime" |
+| AI_SYRUP_Cip_TotalTime | Inputs | Byte | "AI_SYRUP_Cip_TotalTime" |
+| DI_Air_InletPress_OK | Inputs | Bool | Air Pressure Switch |
+| DI_AlarmReset | Inputs | Bool | PB Machine Reset |
+| DI_Ammonia_High_Lev_Prod | Inputs | Bool | Product Chiller Ammonia High Level |
+| DI_AmmoniaHighLev_Water | Inputs | Bool | Water Chiller Ammonia High Level |
+| DI_AuxVoltage_On | Inputs | Bool | Electrical Panel Restored |
+| DI_AVM362_Close | Inputs | Bool | AVM362 - Feedback OFF |
+| DI_AVM362_Open | Inputs | Bool | AVM362 - Feedback ON |
+| DI_CIP_ChemicalProd | Inputs | Bool | CIP - Chemical Prod [for local CIP only] |
+| DI_CIP_CleaningCompleted | Inputs | Bool | CIP - Cip Cleaning Completed |
+| DI_CIP_CleaningFault | Inputs | Bool | CIP - Cip in Fault |
+| DI_CIP_FreeSodaTank | Inputs | Bool | CIP - Soda Tank is able to receive soda from mixer [for local CIP only] |
+| DI_CIP_HotWaterSending | Inputs | Bool | CIP - Hot Water Sending [for local CIP only] |
+| DI_CIP_TankFilling | Inputs | Bool | CIP - Flooding Request |
+| DI_CO2_InletPress_OK | Inputs | Bool | - CO2 Inlet Pressure Switch |
+| DI_DeairVacuumOk | Inputs | Bool | - Deairator Vaccum Switch |
+| DI_Emergency_Pilz_On | Inputs | Bool | Pilz Emergency |
+| DI_Emergency_Pressed | Inputs | Bool | Electrical Panel Emergency Button |
+| DI_Flr_CIP_CleaningAlarm | Inputs | Bool | FILLER - Alarm |
+| DI_Flr1_CIP_DrainComplete | Inputs | Bool | From FILLER - Cip Drain Complete |
+| DI_Flr_CIP_FloodingEnd | Inputs | Bool | FILLER - Flooding End |
+| DI_Flr1_CIP/RinseFiller | Inputs | Bool | From FILLER 1 - Cip/rinse |
+| DI_Flr_CIP_RecoverReq | Inputs | Bool | FILLER - Recover Request |
+| DI_Flr_CIP_RinseMode | Inputs | Bool | FILLER - Rinse Mode |
+| DI_Flr_EndProdLastBottleFilled | Inputs | Bool | From FILLER - Production done Last bottle filled |
+| DI_Flr_OpenAVM369 | Inputs | Bool | From FILLER - AVM369 Opening request |
+| DI_Flr1_PROD_Request | Inputs | Bool | From FILLER 1 - Product Request |
+| DI_CIP_Drain | Inputs | Bool | From CIP Drain |
+| DI_CIP_CIP_Rinse | Inputs | Bool | From CIP Running |
+| DI_CIP_CIP_Enable | Inputs | Bool | From CIP Enable |
+| DI_SYR_TANK_LEVEL | Inputs | Word | DI_Syrup Room Tank Level % |
+| DI_FSS301 | Inputs | Bool | FSS301 - Local Cip Return Flow Switch |
+| DI_HVM302_Sensor | Inputs | Bool | GCM302 - Manual Water Valve Closed (NO) |
+| DI_Log_Sidel | Inputs | Bool | Log son usuario Sidel |
+| DI_LSM302L | Inputs | Bool | LSM302_L - Product Tank Minimun Level |
+| DI_LSN301L | Inputs | Bool | LSN301_L - Deaireator Tank Minimun Level |
+| DI_MaxTempAlarm | Inputs | Bool | Electrical Cabinet High Temperature |
+| DI_Min_Deair2_Level | Inputs | Bool | LSN302_L - Deaireator Tank #2 Minimun Level |
+| DI_Min_Syrup_Level | Inputs | Bool | - Syrup Tank Minimun Level |
+| DI_PB_Machine_Start | Inputs | Bool | PB Machine Start |
+| DI_PB_Machine_Stop | Inputs | Bool | PB Machine Stop |
+| DI_PPM303_Ovrld | Inputs | Bool | PPM303 - Product Pump Overload |
+| DI_PPN301_Contactor | Inputs | Bool | PPN301 - Deaireator Pump Feedback |
+| DI_PPN301_Ovrld | Inputs | Bool | PPN301 - Deaireator Pump Overload |
+| DI_PPN301_SoftStOvr | Inputs | Bool | PPN301 - Deaireator Pump Softstarter Ready |
+| DI_PPN304_Contactor | Inputs | Bool | PPN304 - Vaccum Pump Feedback |
+| DI_PPM305_Ovrld | Inputs | Bool | PPM305 - Product Pump 2 Overload |
+| DI_PPP302_Contactor | Inputs | Bool | PPP302 - Syrup Pump Feedback |
+| DI_PPP302_Ovrld | Inputs | Bool | PPP302 - Syrup Pump Overload |
+| DI_Product_Analyzer_Prod_NO_OK | Inputs | Bool | |
+| DI_RMM301_Closed | Inputs | Bool | RMM301 - Feedback OFF (VM1WATER) |
+| DI_RMM303_Closed | Inputs | Bool | RMM303 - Feedback OFF (VM3 CO2) |
+| DI_RMM304_Closed | Inputs | Bool | RMM304 - Feedback OFF |
+| DI_RMP302_Closed | Inputs | Bool | RMP302 - Feedback OFF (VM2 SYRUP) |
+| DI_SyrRoom_Cip_Mode | Inputs | Bool | Syrup Room - Cip Mode |
+| DI_SyrRoom_Pump_Ready | Inputs | Bool | Syrup Room - Pump ready |
+| DI_SyrRoom_WatPumpReady | Inputs | Bool | From Syrup Room - Water Pump Ready |
+| DI_UPSBatteryReady | Inputs | Bool | UPS Battery ready |
+| DI_UV_Lamp_Ready | Inputs | Bool | Water UV Lamp Ready |
+| DI_Water_Pump2_Contactor | Inputs | Bool | PPN305 - Deaireator Pump #2 Feedback |
+| DI_Water_Pump2_Ovrld | Inputs | Bool | PPN305 - Deaireator Pump #2 Overload |
+| DI_WaterPipeCIP_Sensor | Inputs | Bool | MIX - N10_I32_ |
+| DO_Aux24DC | Output | Bool | MIX - 24DC ON |
+| DO_AVM312_Deair_Reflux | Output | Bool | MIX - N10_O41_ |
+| DO_AVM317_1 | Output | Bool | MIX - CIP to Syrup Tank Inlet |
+| DO_AVM327 | Output | Bool | MIX - Blendfill Still Water By-Pass Mixproof 1 |
+| DO_AVM328 | Output | Bool | MIX - Blendfill Still Water By-Pass Mixproof 2 |
+| DO_AVM329 | Output | Bool | MIX - Blendfill Still Water By-Pass Mixproof 3 |
+| DO_AVM330 | Output | Bool | MIX - Blendfill Still Water By-Pass Drain Inlet Deaireator Tank |
+| DO_AVM396 | Output | Bool | MIX - Steril Air Inlet |
+| DO_AVN325 | Output | Bool | MIX - Vacuum Pump PPN304 Water In |
+| DO_AVN329 | Output | Bool | MIX - Deaireator 2 Tank Spray Ball |
+| DO_AVN348 | Output | Bool | MIX - Deaireator Inlet |
+| DO_AVN349 | Output | Bool | MIX - Deaireator Bypass 1 |
+| DO_AVN373 | Output | Bool | MIX - Deaireator 2 Drain |
+| DO_AVN374 | Output | Bool | MIX - Deaireators Connection Drain |
+| DO_AVN377 | Output | Bool | |
+| DO_AVN378 | Output | Bool | |
+| DO_AVN390 | Output | Bool | |
+| DO_AVN347 | Output | Bool | MIX - Deaireator Tank Start CO2 Injection 1 |
+| DO_AVP363 | Output | Bool | MIX - Syrup Line In H2O |
+| DO_AVP391 | Output | Bool | MIX - |
+| DO_AVS331 | Output | Bool | MIX - CIP Venturi |
+| DO_AVS332 | Output | Bool | MIX - CIP Wash Venturi |
+| DO_AVS333 | Output | Bool | MIX - CIP Caustic |
+| DO_AVS334 | Output | Bool | MIX - CIP Acid |
+| DO_AVS335 | Output | Bool | MIX - CIP Peracetic Acid |
+| DO_AVS336 | Output | Bool | MIX - CIP Recirculation |
+| DO_AVS337 | Output | Bool | MIX - CIP Drain |
+| DO_AVS338 | Output | Bool | MIX - CIP Heater |
+| DO_CIP_CleaningFault | Output | Bool | CIP - Cleaning Fault |
+| DO_SyrupRoom_Aux1 | Output | Bool | To Syrup Room- Alarm |
+| DO_CIP_DrainCompleted | Output | Bool | CIP - Drain Completed |
+| DO_CIP_HotWaterReq | Output | Bool | CIP - Hot Water Request [for local CIP only] |
+| DO_CIP_RecoverCompleted | Output | Bool | CIP - Recover Completed |
+| DO_CIP_SendSodaReq | Output | Bool | CIP - Send Soda Request [for local CIP only] |
+| DO_CIP_SolutionReturn | Output | Bool | CIP - Solution Return |
+| DO_CIP_WaterPipe_Ready | Output | Bool | CIP - Water Pipe Ready [for local CIP only] |
+| DO_CO2_Counter_Pulse | Output | Bool | MIX - Water Counter Pulse ( 1 Pulse = 100 Kg) |
+| DO_CtrlCircuitRun | Output | Bool | Electrical Panel Reset |
+| DO_SyRm_SyrupReques | Output | Bool | To syrup Room Syrup Request |
+| DO_EV03_SyrupLvlCtrl | Output | Bool | MIX - N10_O06_ |
+| DO_EV04_SyrupFillUp | Output | Bool | MIX - N10_O07_ |
+| DO_EV66_FillerRinseWater | Output | Bool | MIX - N10_O97_ |
+| DO_EV67_SyrupLineDrain | Output | Bool | MIX - N10_O101_ |
+| DO_EV68_FillerRinseWater | Output | Bool | MIX - N10_O102_ |
+| DO_EV71_FillerPrPipeDrai | Output | Bool | MIX - N10_O104_ |
+| DO_EV71_FiRinseSprayBall | Output | Bool | MIX - N10_O105_ |
+| DO_EV72_FlrRinseTankDrai | Output | Bool | MIX - N10_O106_ |
+| DO_FillerNextRecipe | Output | Byte | MIX - |
+| DO_Flr_BottleStop | Output | Bool | FILLER - Bottles Stop |
+| DO_Flr1_CIP_CleaningEnd | Output | Bool | FILLER - Cip Cleaning Ended |
+| DO_Flr_CIP_CleaningFault | Output | Bool | FILLER - Cip Fault |
+| DO_Flr1_CIP_DrainRequest | Output | Bool | FILLER - Cip Drain Request |
+| DO_Flr_CIP_ProdSending | Output | Bool | FILLER - Cip Product Sending |
+| DO_Flr_CIP_RecoverReq | Output | Bool | FILLER - Cip Recover Request |
+| DO_Flr1_RinseMode | Output | Bool | FILLER - Rinse Mode |
+| DO_Flr_CIP_RinseSending | Output | Bool | FILLER - Rinse Sending |
+| DO_Flr_CIP_Running | Output | Bool | FILLER - Cip Running |
+| DO_Flr_CIP_TankFilling | Output | Bool | FILLER - Flooding Request |
+| DO_Flr_FastRinseRequest | Output | Bool | FILLER - Fast Change Over Rinse Request |
+| DO_Flr1_CIP/Rinse | Output | Bool | To Filler 1 CIP/Rinse |
+| DO_Flr1_PROD_Available | Output | Bool | FILLER - Product Available |
+| DO_Flr1_OpenBottleblock | Output | Bool | FILLER - Production Mode |
+| DO_Flr_PROD_Run_Out | Output | Bool | FILLER - Run Out Request |
+| DO_Flr_ProductCompleted | Output | Bool | FILLER - Product Completed |
+| DO_Flr_WaterRinseReady | Output | Bool | FILLER - Fast Change Over Water Ready |
+| DO_Green_Lamp | Output | Bool | DO_Green_Lamp |
+| DO_Horn | Output | Bool | DO_Horn |
+| DO_MES_CIP | Output | Bool | MES - CIP Mode |
+| DO_MES_FAULT | Output | Bool | MES - FAULT (1= FAULT) |
+| DO_MES_PRODUCTION | Output | Bool | MES - Production |
+| DO_MES_Running | Output | Bool | MES - Running 1(Running - 0 Stop) |
+| DO_CIP_Mode_En | Output | Bool | To CIP Modo Enable |
+| DO_MIXER _CIP_Temperature_Return | Output | Word | |
+| DO_CoolingON | Output | Bool | EV Cooling Enbled |
+| DO_MIXER _Rinse_mode | Output | Bool | MIXER en RinseMode |
+| DO_PB_Green_Lamp | Output | Bool | PB Machine Start Lamp |
+| DO_PCM306En | Output | Bool | DO_PCM306_Enabled Power On |
+| DO_PPM303_Run | Output | Bool | DO_PPM303_Run |
+| DO_PPN301_1053K1 | Output | Bool | DO_PPN301_ElectonicStart |
+| DO_PPN301_Run | Output | Bool | DO_PPN301_SoftStartPower |
+| DO_PPN304_Run | Output | Bool | DO_PPN304_Run |
+| DO_PPP302_Run | Output | Bool | DO_PPP302_Run |
+| DO_Red_Lamp | Output | Bool | DO_Red_Lamp |
+| DO_RVN301_Level | Output | Bool | MIX - Deaireator Level Control |
+| DO_SyrRoom_SyrupRequest | Output | Bool | SYRUP ROOM - Syrup Request |
+| DO_Syrup_Counter_Pulse | Output | Bool | MIX - Syrup Counter Pulse ( 1 Pulse = 100 Lt.) |
+| DO_SyrupRoomPump_Run | Output | Bool | Syrup Room - Syrup Pump Request |
+| DO_SyrupRoomWaterReq | Output | Bool | Syrup Room - Water Pump Request |
+| DO_Water_Counter_Pulse | Output | Bool | DO_Water_Counter_Pulse |
+| DO_Yellow_Lamp | Output | Bool | DO_Yellow_Lamp |
+| MaselliSpare | Output | Bool | Maselli Spare |
+| MaselliHold | Output | Bool | Masseli Hold activated |
+| P_AI_TTM306 | Inputs | Word | TTM306 - Chiller Temperature |
+| P_AI_LTM302 | Inputs | Word | LTM302 - Product Tank Level |
+| P_AI_LTP303 | Inputs | Word | LTP303 - Syrup Tank Level |
+| P_AI_PCM306 | Inputs | Word | PCM306 - Gas Pressure Injection |
+| P_AI_ProductCO2 | Inputs | Word | Product Analizer - Product CO2 |
+| P_AI_PTF203 | Inputs | Word | PTF203 - Differential Pressure |
+| P_AI_PTM304 | Inputs | Word | PTM304 - Product Tank Pressure |
+| P_AI_PTP338 | Inputs | Word | PTP338 - Syrup Inlet Pressure |
+| P_AI_RVM301 | Inputs | Word | RVM301 - Product Tank Pressure Valve |
+| P_AI_RVN304 | Inputs | Word | RVN304 - Deaireation Valve |
+| P_AI_TTN321 | Inputs | Word | TTN321 - Deaireator Temperature |
+| P_AO_CIPCausticCond | Output | Word | Recorder - Local Cip Delivery Conductivity [0.0 … 200.0 mS] |
+| P_AO_CIPReturnTemperature | Output | Word | Recorder - Local Cip Return Temperaure [0.0 … 100.0 °C] |
+| P_AO_CIPWaterCond | Output | Word | Recorder - Local Cip Return Conductivity [0.0 … 2000.0 mS] |
+| P_AO_PCM306 | Output | Word | PCM306 - Gas Injection Pressure Control |
+| P_AO_ProductRunOutAmount | Output | Word | FILLER - Product Run Out Amount [200.0 … 800.0 L] |
+| P_AO_RMM301 | Output | Word | RMM301 - Water Flow Control |
+| P_AO_RMM303 | Output | Word | RMM303 - Gas Flow Control |
+| P_AO_RMM304 | Output | Word | RMM304 - Gas 2 Flow Control |
+| P_AO_RMP302 | Output | Word | RMP302 - Syrup Flow Control |
+| P_AO_RVM301 | Output | Word | RVM301 - Product Tank Pressure Valve |
+| P_AO_RVM302 | Output | Word | RVM302 - Deaireation Tank Level / Product Tank Level Valve |
+| P_AO_RVM319 | Output | Word | RVM319 - Chiller Temperature control |
+| P_AO_RVN302 | Output | Word | RVN302 - Deaireation Tank Level Valve |
+| P_AO_RVN304 | Output | Word | RVN304 - Deaireation Valve |
+| P_AO_RVP303 | Output | Word | RVP303 - Syrup Tank Level Valve |
+| P_AO_RVS318 | Output | Word | RVS318 - Local Cip Heating Valve |
+| P_AO_ToFillerEqPress | Output | Word | FILLER - Product Saturation Pressure [0.0 … 100.0 Bar/10] |
+| P_CTS301_Conductiv_State | Inputs | Byte | MIX - Profibus Variables |
+| P_CTS301_Conductivity | Inputs | Real | MIX - Profibus Variables |
+| P_CTS301_Temperat_State | Inputs | Byte | MIX - Profibus Variables |
+| P_CTS301_Temperature | Inputs | Real | MIX - Profibus Variables |
+| P_CTS302_Conductiv_State | Inputs | Byte | MIX - Profibus Variables |
+| P_CTS302_Conductivity | Inputs | Real | MIX - Profibus Variables |
+| P_CTS302_Temperat_State | Inputs | Byte | MIX - Profibus Variables |
+| P_CTS302_Temperature | Inputs | Real | MIX - Profibus Variables |
+| P_FTM303_Tot_Ctrl | Output | Byte | MIX - |
+| P_FTM303_Density | Inputs | Real | MIX - Profibus Variables |
+| P_FTM303_Density_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTM303_EPD | Inputs | Byte | MIX - Profibus Variables |
+| P_FTM303_Flow | Inputs | Real | MIX - Profibus Variables |
+| P_FTM303_Flow_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTM303_Temperature_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTM303_Temperature | Inputs | Real | MIX - Profibus Variables |
+| P_FTM303_Totalizer | Inputs | Real | MIX - Profibus Variables |
+| P_FTM303_Totalizer_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTN301_Flow | Inputs | Real | MIX - Profibus Variables |
+| P_FTN301_Flow_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTN301_Tot_Ctrl | Output | Byte | MIX - |
+| P_FTN301_Totaliz_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTN301_Totalizer | Inputs | Real | MIX - Profibus Variables |
+| P_FTP302_Brix | Inputs | Real | MIX - Profibus Variables |
+| P_FTP302_Brix_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTP302_Tot_Ctrl | Output | Byte | MIX - |
+| P_FTP302_Density | Inputs | Real | MIX - Profibus Variables |
+| P_FTP302_Density_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTP302_Flow | Inputs | Real | MIX - Profibus Variables |
+| P_FTP302_Flow_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTP302_Temp | Inputs | Real | MIX - Profibus Variables |
+| P_FTP302_Temp_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTP302_Totaliz_State | Inputs | Byte | MIX - Profibus Variables |
+| P_FTP302_Totalizer | Inputs | Real | MIX - Profibus Variables |
+| P_gMaselli_AlcoholVolume | Inputs | Real | MIX - Profibus Variables |
+| P_gMaselli_ProdPerStandard | Inputs | Real | MIX - Profibus Variables |
+| P_gMaselli_ProductBrix | Inputs | Real | MIX - Profibus Variables |
+| P_gMaselli_ProductCO2 | Inputs | Real | MIX - Profibus Variables |
+| P_gMaselli_ProductNumber | Inputs | Byte | MIX - Profibus Variables |
+| P_gMaselli_ProductTemp | Inputs | Real | MIX - Profibus Variables |
+| P_gMaselli_ProfibusStatus | Inputs | Byte | MIX - Profibus Variables |
+| P_gMaselli_RecipeSetNum | Output | Byte | MIX - Profibus Variables |
+| P_gMaselli_RecipeSetNumStr | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_0 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_1 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_10 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_11 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_12 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_13 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_14 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_15 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_16 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_17 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_18 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_19 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_2 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_20 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_21 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_22 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_23 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_24 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_25 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_26 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_27 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_28 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_29 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_3 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_4 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_5 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_6 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_7 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_8 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock01_9 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_30 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_31 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_32 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_33 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_34 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_35 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_36 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_37 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_38 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_39 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_40 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_41 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_42 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_43 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_44 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_45 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_46 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_47 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_48 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_49 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_50 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_51 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_52 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_53 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_54 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_55 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_56 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_57 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_58 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_59 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_60 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock02_61 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_62 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_63 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_64 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_65 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_66 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_67 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_68 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_69 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_70 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_71 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_72 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_73 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_74 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_75 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_76 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_77 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_78 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_79 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_80 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_81 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_82 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_83 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_84 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_INBlock03_85 | Inputs | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_0 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_1 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_10 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_11 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_12 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_13 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_14 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_15 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_16 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_17 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_18 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_19 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_2 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_20 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_21 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_22 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_23 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_24 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_25 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_26 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_27 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_3 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_4 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_5 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_6 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_7 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_8 | Output | Byte | MIX - Profibus Variables |
+| P_gPAmPDS_OUTBlock01_9 | Output | Byte | MIX - Profibus Variables |
+| P_gPPM303_VFC_ActualValue | Inputs | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPM303_VFC_ControlWord | Output | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPM303_VFC_Refvalue | Output | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPM303_VFC_StatusWord | Inputs | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPM307_VFC_ActualVaule | Inputs | Int | MIX - ProductPump - Profibus Variables |
+| P_gPPM307_VFC_ControlWord | Output | Word | |
+| P_gPPM307_VFC_Refvalue | Output | Word | |
+| P_gPPM307_VFC_StatusWord | Inputs | Word | |
+| P_gPPN301_VFC_ActualValue | Inputs | Word | MIX - Water Pump - Profibus Variables |
+| P_gPPN301_VFC_ControlWord | Output | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPN301_VFC_Refvalue | Output | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPN301_VFC_StatusWord | Inputs | Word | MIX - Water Pump - Profibus Variables |
+| P_gPPP302_VFC_ActualValue | Inputs | Word | MIX - Syrup Pump - Profibus Variables |
+| P_gPPP302_VFC_ControlWord | Output | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPP302_VFC_Refvalue | Output | Word | MIX - Product Pump - Profibus Variables |
+| P_gPPP302_VFC_StatusWord | Inputs | Word | MIX - Syrup Pump - Profibus Variables |
+| PPN301_SoftStart_Averia | Inputs | Bool | PPN301_SoftStart_Averia |
+| Tag_24 | Inputs | Real | |
+| DI_UPSsupply | Inputs | Bool | UPS supply OK |
+| DI_PB_HornReset | Inputs | Bool | PB Horn Reset |
+| DO_PB_HornReset | Output | Bool | DO PB horn Reset |
+| DI_Flr1_PROD_ok | Inputs | Bool | From Filler Producion Filling Bottles |
+| DI_Flr_RinseMode | Inputs | Bool | From FILLER Rinse Mode |
+| DO_FlrProdMode | Output | Bool | T o Filler Production Mode |
+| DO_Flr1_Productionmode | Output | Bool | To Filler 1 Production Mode |
+| DO_Flr1_CIPMode | Output | Bool | To Filler CIP Mode |
+| DO_ Flr_CIPRinseSending | Output | Bool | To Filler CIP/Rinse Sending solution |
+| DO_Flr_RinseMode | Output | Bool | To Filler Rinse Mode |
+| DO_SyRm_Fault | Output | Bool | To Syrup Room Fault |
+| DO_SyRm_ProdMode | Output | Bool | To Syrup Room Prod Mode |
+| DO_SyRm_WaterRequest | Output | Bool | To syrup Room Water Request |
+| DO_CIP_Fault | Output | Bool | To CIP Fault |
+| DO_CIP_Empty | Output | Bool | To CIP Mixer filler empty |
+| DO_CIP_RdyChmcl | Output | Bool | To CIP Ready to receive Chimical (dummy bottles in) |
+| DO_CIP_Flpflp | Output | Bool | To CIP Drain Valves Flip Flop Done |
+| DI_CIP_Fault | Inputs | Bool | From CIP Fault |
+| DI_CIP_End | Inputs | Bool | From CIP End (Completed) |
+| DI_CIP_FlpflpEn | Inputs | Bool | From CIP Flip flop Drain Valve Enable |
+| DI_CIP_FirstRinsedone | Inputs | Bool | From CIP First Rinse Done (without dummy Bottles |
+| DI_SYR_COUNTER_LT | Inputs | Word | DI_Syrup Room Liter Counter |
+| DI_SyrRoom_SyrPump_Running | Inputs | Bool | From Syrup Room - Syrup Pump Running |
+| DI_SYRUP_Runout | Inputs | Bool | |
+| DO_Flr1_Fault | Output | Bool | To Filler 1 Fault |
+| DO_Flr_ProdAvailable | Output | Int | To Filler Product Available liters |
+| DI_Flr2_PROD_Request | Inputs | Bool | From FILLER 2 - Product Request |
+| DI_Flr2_CIP/RinseFiller | Inputs | Bool | From FILLER 2 - Cip/Rinse |
+| DO_Flr2_CIP/Rinse | Output | Bool | To Filler 2 CIP/Rinse |
+| DO_Flr2_Fault | Output | Bool | To Filler 2 Fault |
+| P_gPPM305_VFC_StatusWord | Inputs | Word | MIX - Product Pump 2 - Profibus Variables |
+| P_gPPM305_VFC_ActualValue | Inputs | Word | MIX - Product Pump 2 - Profibus Variables |
+| P_gPPM305_VFC_ControlWord | Output | Word | MIX - Product Pump 2 - Profibus Variables |
+| P_gPPM305_VFC_Refvalue | Output | Word | MIX - Product Pump 2 - Profibus Variables |
+| DO_AVM363 | Output | Bool | MIX - Blender to filler 1 |
+| DO_RVM301 | Output | Bool | MIX - Deaireator Level Control |
+| DO_AVP317_1 | Output | Bool | MIX - CIP To Syrup |
+| DO_AVM353 | Output | Bool | MIX - Blender to filler 2 Drain |
+| DO_Blu_Lamp | Output | Bool | DO_Blu_Lamp |
+| P_AO_RVN305 | Output | Word | |
+| DI_PPN301_SoftStart_Ovrld | Inputs | Bool | PPN301 - Water_Pump_SoftStart_Ovrld |
+| DI_PPM306_Contactor | Inputs | Bool | PPM306 - Recirculating Pump Feedback |
+| DI_Ammonia_CompressorReady | Inputs | Bool | Cooler Power Supply |
+| DI_Flr2_CIP_DrainComplete | Inputs | Bool | From FILLER 2 - Cip Drain Complete |
+| DI_PPM306_Ovrld | Inputs | Bool | PPM306 - Recirculating Pump Overload |
+| DI_Flr1_WaterRequest | Inputs | Bool | From FILLER - Water Request |
+| DO_Flr1_Spare0 | Output | Bool | Spare |
+| DO_CIP_Spare | Output | Bool | Spare |
+| DO_SyrupValve_Enable | Output | Bool | Valve Power Enable (Power Supply Analog Signal) |
+| DO_AVM382 | Output | Bool | Mix - Product Recirculation though chiller |
+| DO_AVP355 | Output | Bool | CIP |
+| DO_AVN350 | Output | Bool | |
+| P_AI_CIPHeaterTemperature | Inputs | Word | TTS305 - Local Cip Heating Temperature |
+| P_AI_FTM305 | Inputs | Word | FTM305 - Storage Tank Baialage Flow |
+| P_AI_PTM308 | Inputs | Word | PTM308 - PCM306 Infeed Pressure |
+| P_AI_CTS302 | Inputs | Word | CTS302 - Local Cip Delivery Conductivity |
+| P_AI_CTS301 | Inputs | Word | CTS301 - Local Cip Return Conductivity |
+| P_AI_CIPReturnTemperature | Inputs | Word | TTS305_1 - Local Cip Return Temperature |
+| P_AI_FillerLevel | Inputs | Word | Filler level |
+| P_AI_CTM304 | Inputs | Word | CTM304 - Product Conductivity |
+| P_AI_PTN313 | Inputs | Word | PTN313 - Deaireator Pressure (vacuostato) |
+| P_AI_RVN305 | Inputs | Word | RVN305 - Deaireation Valve |
+| P_AI_ProductO2 | Inputs | Word | Product Analizer - Product O2 |
+| DO_HMIPowerSupply | Output | Bool | Cut Power to PC |
+| DO_PPM306_Run | Output | Bool | DO_PPM306_Run |
+| DI_HVP301_Sensor | Inputs | Bool | GCP301 - Manual Syrup Valve Closed (NO) |
+| DI_AVM346_Close | Inputs | Bool | AVM346 - Feedback OFF |
+| DI_AVM346_Open | Inputs | Bool | AVM346 - Feedback ON |
+| DI_UPSAlarm | Inputs | Bool | UPS Alarm |
+| E0.7 | Inputs | Bool | Spare |
+| E3.1 | Inputs | Bool | Spare |
+| DO_RVM301_Discharge | Output | Bool | DO_RVM301_Discharge |
+| DO_SyrupRoom_Aux2 | Output | Bool | |
+| DO_Glycol_LineEnabled | Output | Bool | Glycol Line Enabled |
+| DO_Glycol_ColdRequest | Output | Bool | Glycol Cold Request |
+| DO_Glycol_LineCIP | Output | Bool | Glycol Line CIP |
+| DO_EV1_SubCarb | Output | Bool | EV1 Sub Carbo Customer |
+| DO_EV2_SubCarb | Output | Bool | EV2 Sub Carbo Customer |
+| DO_EV3_SubCarb | Output | Bool | EV3 Sub Carbo Customer |
+| DO_EV4_SubCarb | Output | Bool | EV4 Sub Carbo Customer |
+| DO_BoosterPump_SubCarb | Output | Bool | Booster Pump Sub Carbo Customer |
+| DO_200V26 | Output | Bool | Spare |
+| DO_EV100_WaterInlet | Output | Bool | Spare |
+| DO_200V28 | Output | Bool | Spare |
+| DO_AVM340 | Output | Bool | MIX - Still Water By-Pass Product Intercept |
+| DO_AVM339 | Output | Bool | MIX - Still Water By-Pass Deaireator Tank |
+| DO_AVM341 | Output | Bool | MIX - CO2 Inlet |
+| DO_AVM342 | Output | Bool | MIX - N2 Inlet |
+| DO_AVM346 | Output | Bool | MIX - Filler CO2 |
+| DO_AVM380 | Output | Bool | MIX - Product Recirculation Without Chiller |
+| DO_EV102_Syrup And CIP Inlet | Output | Bool | Spare |
+| DO_EV103_WaterInterception | Output | Bool | Spare |
+| DO_WaterBypass1 | Output | Bool | Spare |
+| DO_EV105_WaterBypass | Output | Bool | Spare |
+| CARLOS_TESTE | Inputs | Bool | |
+| DI_PPM303_Contactor | Inputs | Bool | PPM303 - Product Pump Feedback |
+| DI_SyrRoom_Alarm_Reset | Inputs | Bool | From Syrup Room - Alarm Reset |
+| DO_Analayzer_Enable | Output | Bool | To Analayzer ENABLE |
+
+
+
diff --git a/04-SIDEL/00 - MASTER/adjuntos/H1002261 RG Brands Network layout rev02.png b/04-SIDEL/00 - MASTER/adjuntos/H1002261 RG Brands Network layout rev02.png
new file mode 100644
index 0000000..c14d23b
Binary files /dev/null and b/04-SIDEL/00 - MASTER/adjuntos/H1002261 RG Brands Network layout rev02.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/Reporte/E5.007299 - Modifica O&U - RNF032 - NOTES.md b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/E5.007299 - Modifica O&U - RNF032 - NOTES.md
similarity index 100%
rename from 04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/Reporte/E5.007299 - Modifica O&U - RNF032 - NOTES.md
rename to 04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/E5.007299 - Modifica O&U - RNF032 - NOTES.md
diff --git a/cronologiaI-93040-3074-ALPLA-BG-open-points.md b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/E5.007299 - RNF032 - FDM.md
similarity index 100%
rename from cronologiaI-93040-3074-ALPLA-BG-open-points.md
rename to 04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/E5.007299 - RNF032 - FDM.md
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/FDM RNF032 E5.007299.md b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/FDM RNF032 E5.007299.md
new file mode 100644
index 0000000..426cd72
--- /dev/null
+++ b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/FDM RNF032 E5.007299.md
@@ -0,0 +1,416 @@
+# Índice de Contenido
+
+- [Foglio di Modifica](#foglio-di-modifica)
+
+---
+
+
+
+## Foglio di Modifica
+
+*Origen: FDM RNF032 E5.007299 - mv.htm*
+
+**FDM Name****** | CIP RETURN PUMP | |
+---|---|---|---
+**FDM Number****** | 0001 | **Date****** | 16/01/2025
+**Affaire****** | RNF0032, E5.007299-EXMU01UF, EQPT24542 | |
+**Master****** | _Eplan5 - > Eplan2.8 Creata revisione 02 di schema el._ | |
+**Author****** | Santini Paolo | |
+
+****
+
+BOM MODIFICATION |
+---|---
+**Numero**** modifica lancio****** | 816479
+**Pilota Generale****** | EQPT24542****
+**Pilota Elettrico (****NFT)****** | 43756949
+**Materiale**** Elettrico ****(NFT)****** | 43756950
+**Materiale test/programmazione E5.00 xxxx (****NFT)****** | 43756951
+**Etichetta**** Elettrica ****(NFT)****** | 43756953
+**Schema Elettrico ****(PEA)****** | 43756955
+**Pilota Originale Macchina 04260779401** |
+**Numero**** Modifica Aggiornamento Pilota** | 816494
+
+EPLAN P5 -> EPLAN 2.8 Codici Archiviazione Revisioni |
+---|---
+**Numero**** modifica creazione versione 01.****** | 815955
+**Disegno elettrico numero.****** | **43756137**
+**Numero**** modifica creazione versione 02.****** |
+**Numero**** modifica creazione versione 03.****** |
+**Numero**** modifica creazione versione 04.****** |
+**Numero**** modifica creazione versione 05.****** |
+**Numero modifica creazione versione 06 XX****** |
+
+****
+
+
+
+
+FDM DESCRIPTION
+
+
+
+
+
+**1- ****Pag.54 Nuova pagina Pompa CIP.**
+
+****
+
+****
+
+****
+
+**2- ****Pag.58 Rimando per 0V.**
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**3- ****Pag.283 Inserite schede AI.**
+
+****
+
+****
+
+****
+
+**4- ****Pag.285 Inserite schede DI e AI per nuove utenze.**
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**5- ****Pag.321 Allineata isola pneumatica a disegno pneumatico.**
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**6- ****Pag.327 Inserito nuovo inverter su rete profibus.**
+
+****
+
+****
+
+****
+
+**7- ****Pag.356 Segnale di set per conduttivimetro.**
+
+****
+
+****
+
+****
+
+**8- ****Pag.380 Nuove morsettiere per 24V safety emergenze.**
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**9- ****Pag.400 Segnali da flussimetro e conduttivimetro.**
+
+****
+
+****
+
+****
+
+****
+
+**10- ****Pag.657 Nuova pagina Sensori pressione e temperatura ritorno CIP.**
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**11- ****Pag.418 Nuova pagina Gestione flussimetro e conduttivimetro.**
+
+****
+
+****
+
+****
+
+**12- ****Pag.657 Pressostato e temperatura ritorno CIP.**
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**13- ****Pag.659 Flowswitch ritorno CIP.**
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**14- ****Pag.660 Nuova pagina Feedback valvole drenaggio.**
+
+****
+
+****
+
+****
+
+****
+
+-Nota per il tecnico cablatore : Controllare sempre il materiale evaso in distinta ( sotto allegata ) e
+
+portare con se il materiale di consumo e lattrezzatura necessaria per
+
+**** la corretta realizzazione dellUpgrade.
+
+-Note for the cabling technician : Always check the processed material in the list ( attached below )
+
+and bring with you the consumables and equipment necessary for
+
+the correct implementation of the Upgrade.
+
+****
+
+__In caso di sotituzione inverter ripetere tutte le prove di arresto in emergenza (con verifica rampe) e nel caso motore macchina anche di marcia jog con porte chiuse e porte aperte.__
+
+****
+
+__If the inverter is replaced, repeat all the emergency stop test (whit ramp check) and, in the case of the machine motor, also the jog running tests whit doors closed and doors open.__****
+
+****
+
+
+
+****
+
+****
+
+****
+
+****
+
+**15. Simatic S7 Software:**
+
+****
+
+· Aggiunto FC136, FB136, DB288, modificato OB1 Segmento 11 per chiamare FC136
+
+· Modificato in FB136 DB160 per DB120. Aggiunto UDT80, UDT 82, UDT 84, UDT 85
+
+· Aggiunto al hardware Danfoss 54U2 - Nodo 16
+
+· Programmato VLT con rampa a 3s
+
+****
+
+********
+
+****
+
+· Nodo 16:
+
+****
+
+
+
+· Nodo 3:
+
+
+
+· Nodo 18:
+
+
+
+· Aggiunto nodo profibus 16 PEW 640-647 / PAW 640-647
+
+****
+
+********
+
+· Chiamata a FC136 CIP Return Pump Control -> FC136 chiama a FB136
+
+
+
+· Aggiornati PEW/PAW per il VLT
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+****
+
+**
+**
+
+****
+
+****
+
+****
+
+
+## Imágenes Asociadas
+
+![[image001.png]]
+
+![[image002.png]]
+
+![[image003.png]]
+
+![[image004.png]]
+
+![[image005.png]]
+
+![[image006.png]]
+
+![[image007.png]]
+
+![[image008.png]]
+
+![[image009.png]]
+
+![[image010.png]]
+
+![[image011.png]]
+
+![[image012.png]]
+
+![[image013.png]]
+
+![[image014.png]]
+
+![[image015.png]]
+
+![[image016.png]]
+
+![[image017.png]]
+
+![[image018.png]]
+
+![[image019.png]]
+
+![[image020.png]]
+
+![[image021.png]]
+
+![[image022.png]]
+
+![[image023.png]]
+
+![[image024.png]]
+
+![[image025.png]]
+
+---
+
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/Reporte/adjuntos/Pasted image 20250321152823.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/Pasted image 20250321152823.png
similarity index 100%
rename from 04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/Reporte/adjuntos/Pasted image 20250321152823.png
rename to 04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/Pasted image 20250321152823.png
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image001.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image001.png
new file mode 100644
index 0000000..1326528
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image001.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image002.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image002.png
new file mode 100644
index 0000000..d589ce2
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image002.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image003.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image003.png
new file mode 100644
index 0000000..6cfec7d
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image003.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image004.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image004.png
new file mode 100644
index 0000000..71206ba
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image004.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image005.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image005.png
new file mode 100644
index 0000000..33e4414
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image005.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image006.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image006.png
new file mode 100644
index 0000000..acc91c4
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image006.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image007.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image007.png
new file mode 100644
index 0000000..a4056a4
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image007.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image008.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image008.png
new file mode 100644
index 0000000..07ad32b
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image008.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image009.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image009.png
new file mode 100644
index 0000000..7920830
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image009.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image010.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image010.png
new file mode 100644
index 0000000..5601147
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image010.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image011.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image011.png
new file mode 100644
index 0000000..c09ad53
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image011.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image012.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image012.png
new file mode 100644
index 0000000..c228cba
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image012.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image013.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image013.png
new file mode 100644
index 0000000..9589a14
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image013.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image014.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image014.png
new file mode 100644
index 0000000..7c7698e
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image014.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image015.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image015.png
new file mode 100644
index 0000000..8728eb8
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image015.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image016.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image016.png
new file mode 100644
index 0000000..08c4447
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image016.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image017.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image017.png
new file mode 100644
index 0000000..a35018f
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image017.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image018.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image018.png
new file mode 100644
index 0000000..5825ef8
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image018.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image019.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image019.png
new file mode 100644
index 0000000..3990fd9
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image019.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image020.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image020.png
new file mode 100644
index 0000000..f8e18bd
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image020.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image021.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image021.png
new file mode 100644
index 0000000..9e0f748
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image021.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image022.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image022.png
new file mode 100644
index 0000000..261b9e6
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image022.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image023.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image023.png
new file mode 100644
index 0000000..21323ae
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image023.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image024.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image024.png
new file mode 100644
index 0000000..4f6231f
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image024.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image025.png b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image025.png
new file mode 100644
index 0000000..28fb092
Binary files /dev/null and b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/adjuntos/image025.png differ
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/contenidoImportado.md b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/contenidoImportado.md
new file mode 100644
index 0000000..8d07d81
--- /dev/null
+++ b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/contenidoImportado.md
@@ -0,0 +1,243 @@
+# Índice de Contenido
+
+- [Foglio di Modifica](#foglio-di-modifica)
+
+---
+
+
+
+## Foglio di Modifica
+
+*Origen: FDM RNF032 E5.007299 - mv.htm*
+
+FDM Name | CIP RETURN PUMP | |
+- | | |
+**FDM Number | 0001 | Date | 16/01/2025
+**Affaire | RNF0032, E5.007299-EXMU01UF, EQPT24542 | |
+**Master | _Eplan5 - > Eplan2.8 Creata revisione 02 di schema el._ | |
+**Author | Santini Paolo | |
+
+---
+
+BOM MODIFICATION |
+- |
+**Numero modifica lancio | 816479
+**Pilota Generale | EQPT24542
+**Pilota Elettrico ( NFT) | 43756949
+**Materiale Elettrico (NFT) | 43756950
+**Materiale test/programmazione E5.00 xxxx ( NFT) | 43756951
+**Etichetta Elettrica (NFT) | 43756953
+**Schema Elettrico (PEA) | 43756955
+**Pilota Originale Macchina 04260779401 |
+**Numero Modifica Aggiornamento Pilota | 816494
+
+EPLAN P5 -> EPLAN 2.8 Codici Archiviazione Revisioni |
+- |
+**Numero modifica creazione versione 01. | 815955
+**Disegno elettrico numero. | 43756137
+**Numero modifica creazione versione 02. |
+**Numero modifica creazione versione 03. |
+**Numero modifica creazione versione 04. |
+**Numero modifica creazione versione 05. |
+**Numero modifica creazione versione 06 XX |
+
+---
+
+
+
+
+FDM DESCRIPTION
+
+
+
+
+
+**1- Pag.54 Nuova pagina Pompa CIP.**
+
+---
+
+ -
+**2- Pag.58 Rimando per 0V.**
+
+---
+
+ -
+**3- Pag.283 Inserite schede AI.**
+
+---
+
+ -
+**4- Pag.285 Inserite schede DI e AI per nuove utenze.**
+
+---
+
+ -
+**5- Pag.321 Allineata isola pneumatica a disegno pneumatico.**
+
+---
+
+ -
+**6- Pag.327 Inserito nuovo inverter su rete profibus.**
+
+---
+
+ -
+**7- Pag.356 Segnale di set per conduttivimetro.**
+
+---
+
+ -
+**8- Pag.380 Nuove morsettiere per 24V safety emergenze.**
+
+---
+
+ -
+**9- Pag.400 Segnali da flussimetro e conduttivimetro.**
+
+---
+
+ -
+**10- Pag.657 Nuova pagina Sensori pressione e temperatura ritorno CIP.**
+
+---
+
+ -
+**11- Pag.418 Nuova pagina Gestione flussimetro e conduttivimetro.**
+
+---
+
+ -
+**12- Pag.657 Pressostato e temperatura ritorno CIP.**
+
+---
+
+ -
+**13- Pag.659 Flowswitch ritorno CIP.**
+
+---
+
+ -
+**14- Pag.660 Nuova pagina Feedback valvole drenaggio.**
+
+---
+
+ -
+-Nota per il tecnico cablatore : Controllare sempre il materiale evaso in distinta ( sotto allegata ) e
+
+portare con se il materiale di consumo e lattrezzatura necessaria per
+
+- la corretta realizzazione dellUpgrade.
+
+-Note for the cabling technician : Always check the processed material in the list ( attached below )
+
+and bring with you the consumables and equipment necessary for
+
+the correct implementation of the Upgrade.
+
+---
+
+__In caso di sotituzione inverter ripetere tutte le prove di arresto in emergenza (con verifica rampe) e nel caso motore macchina anche di marcia jog con porte chiuse e porte aperte.__
+
+---
+
+__If the inverter is replaced, repeat all the emergency stop test (whit ramp check) and, in the case of the machine motor, also the jog running tests whit doors closed and doors open.__ -
+
+
+ -
+ -
+**15. Simatic S7 Software:**
+
+---
+
+· Aggiunto FC136, FB136, DB288, modificato OB1 Segmento 11 per chiamare FC136
+
+· Modificato in FB136 DB160 per DB120. Aggiunto UDT80, UDT 82, UDT 84, UDT 85
+
+· Aggiunto al hardware Danfoss 54U2 - Nodo 16
+
+· Programmato VLT con rampa a 3s
+
+---
+
+** -
+· Nodo 16:
+
+---
+
+
+
+· Nodo 3:
+
+
+
+· Nodo 18:
+
+
+
+· Aggiunto nodo profibus 16 PEW 640-647 / PAW 640-647
+
+---
+
+** -
+
+· Chiamata a FC136 CIP Return Pump Control -> FC136 chiama a FB136
+
+
+
+· Aggiornati PEW/PAW per il VLT
+
+---
+
+
+![[image001.png]]
+
+![[image002.png]]
+
+![[image003.png]]
+
+![[image004.png]]
+
+![[image005.png]]
+
+![[image006.png]]
+
+![[image007.png]]
+
+![[image008.png]]
+
+![[image009.png]]
+
+![[image010.png]]
+
+![[image011.png]]
+
+![[image012.png]]
+
+![[image013.png]]
+
+![[image014.png]]
+
+![[image015.png]]
+
+![[image016.png]]
+
+![[image017.png]]
+
+![[image018.png]]
+
+![[image019.png]]
+
+![[image020.png]]
+
+![[image021.png]]
+
+![[image022.png]]
+
+![[image023.png]]
+
+![[image024.png]]
+
+![[image025.png]]
+
+---
+
diff --git a/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/data.json b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/data.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/04-SIDEL/04 - E5.007299 - Modifica O&U - RNF032/data.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/Comm - Mixer - Filler.md b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/Comm - Mixer - Filler.md
new file mode 100644
index 0000000..2ae5135
--- /dev/null
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/Comm - Mixer - Filler.md
@@ -0,0 +1,16 @@
+
+ TIA Mixer :
+![[Pasted image 20250403152457.png]]
+Filler:
+![[Pasted image 20250403152601.png]]
+
+
+
+![[Pasted image 20250403152526.png]]
+
+![[Pasted image 20250403152544.png]]
+
+
+
+
+![[Pasted image 20250404152028.png]]
\ No newline at end of file
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152457.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152457.png
new file mode 100644
index 0000000..43e9e22
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152457.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152514.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152514.png
new file mode 100644
index 0000000..e69de29
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152518.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152518.png
new file mode 100644
index 0000000..e69de29
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152526.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152526.png
new file mode 100644
index 0000000..1aba8d6
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152526.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152544.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152544.png
new file mode 100644
index 0000000..60c7de3
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152544.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152601.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152601.png
new file mode 100644
index 0000000..61b3939
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250403152601.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404145622.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404145622.png
new file mode 100644
index 0000000..79ae988
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404145622.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404150350.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404150350.png
new file mode 100644
index 0000000..df39384
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404150350.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404152028.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404152028.png
new file mode 100644
index 0000000..9a28b30
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - FILLER - MIXER/adjuntos/Pasted image 20250404152028.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - Filler - Mixer.md b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - Filler - Mixer.md
new file mode 100644
index 0000000..757fd4a
--- /dev/null
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/COMM - Filler - Mixer.md
@@ -0,0 +1,8 @@
+
+
+
+
+| Mixer | Local TSAP | Remote TSAP | |
+| ------ | ---------- | ----------- | --- |
+| Mixer | 2 | 1 | |
+| Filler | 1 | 2 | |
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-03-26 13.28.27.excalidraw.md b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-03-26 13.28.27.excalidraw.md
index 04dc2b8..41b00d2 100644
--- a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-03-26 13.28.27.excalidraw.md
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-03-26 13.28.27.excalidraw.md
@@ -10,8 +10,6 @@ tags: [excalidraw]
# Excalidraw Data
## Text Elements
-500 ^l6oej9lH
-
## Embedded Files
12c4a92df27e232b436a203a090a3e2a0e21b789: [[04275224102000 P&ID SAE346.png]]
@@ -22,16 +20,16 @@ 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
-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
+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
-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
+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
-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
+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
-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
+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
-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
+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
-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
+zA8Tw5+Nc16dWHipTgK0SbMkViLGCpB8IsKTJkLROjuAS3mNgIgCjUCFKTBwfi4sAaSymgLdmBSanRJKHYIyCBsDZEqJUuAqj1GaO0etPRtSAQdMIIwSmTD8DZIDFZJuaRRmcEIlhQW+gwFdCRjOAMCJ5y6LrMMyA+BQiSVGeMyZpE2SqzAFROga5wgsIoiACiQA
```
%%
\ No newline at end of file
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-04-02 11.05.14.excalidraw.md b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-04-02 11.05.14.excalidraw.md
new file mode 100644
index 0000000..0779660
--- /dev/null
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/Drawing 2025-04-02 11.05.14.excalidraw.md
@@ -0,0 +1,217 @@
+---
+
+excalidraw-plugin: parsed
+tags: [excalidraw]
+
+---
+==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
+
+
+# Excalidraw Data
+
+## Text Elements
+0166M1 - DANFOSS 7.5KW ^2WS6h2sp
+
+P3 OVERPRESSURE PUMP ^kRndMZnC
+
+0169M2 - 169K8 ^mQBW5II4
+
+RECYRCLE PUMP P6 ^u9CJsoog
+
+801U4 - WATER MOTOR VALVE
+801U0 - PROMAG H300 (FTN301) ^QVGBoFht
+
+802U4 - SYRUP FLOWMETER
+802U0 - PROMASS F300 (FTN302) ^5mC6EjGI
+
+801U4 - CO2 MOTOR VALVE
+803U0 - PROMASS F300 (FTM303) ^GnvtHJHy
+
+805B1 CO2 TANK PRESSURE CONTROL ^ceduwcvF
+
+806U1 NORGREN VALVE Herion VP23
+CO2 FLOW REGULATION ^EJ3dKEq6
+
+807B1 AIR VACUUM CO2 FLOW CONTROL ^aY9WFS3X
+
+802U0 - ANTON PAAR ^NNZGEOk6
+
+0160M2 - 160K4 ^DAslJAjv
+
+WATER PUMP P1 - SOFTSTART ^ioAuVLXq
+
+0163M2 - 163K8 - 163U1 - 18.5KW ^4QZA5jRL
+
+SYRUP PUMP P2 ^2sKCeWbG
+
+## Embedded Files
+1ab8bc830f8dd9e36c8d12702b9a902ce76832a9: [[motorS.svg]]
+
+%%
+## Drawing
+```compressed-json
+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
+```
+%%
\ No newline at end of file
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/HMI - Machine Configuration.md b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/HMI - Machine Configuration.md
new file mode 100644
index 0000000..8f72430
--- /dev/null
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/HMI - Machine Configuration.md
@@ -0,0 +1,5 @@
+
+
+![[Pasted image 20250401163835.png]]
+
+![[Pasted image 20250401163951.png]]
\ No newline at end of file
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/IO/IO - Adaptation.md b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/IO/IO - Adaptation.md
new file mode 100644
index 0000000..f426192
--- /dev/null
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/IO/IO - Adaptation.md
@@ -0,0 +1,117 @@
+# Mapping SAE346-Master Tia18
+
+## Inputs (DI → E)
+
+| Software Side | Software Address | Software Description | PLC Side | PLC Description | Coincidencia | Equival. |
+| ----------------------------- | ---------------- | ---------------------------------------- | ----------------- | -------------------------------- | ------------ | -------- |
+| DI_PPM303_Contactor | E2.5 | PPM303 - Product Pump Feedback | - | - | - | P3/303 |
+| DI_Emergency_Pressed | M3005.3 | Electrical Panel Emergency Button | E5.0 | ==MAX TEMPERATURE ALARM== | | |
+| DI_Emergency_Pilz_On | E0.0 | Pilz Emergency | E5.1 (0760K1) | AUXILIARY CIRC. ON | Alta | - |
+| | | | E5.2 | ==EMERGENCY EMERGENZA== | | |
+| DI_UPSBatteryReady | E1.4 | UPS Battery ready | E5.3 (0925A1/4) | BUFFER BATTERY READY | Alta | - |
+| DI_UPSAlarm | E1.1 | UPS Alarm | E5.4 (0925A1/5) | UPS ALARM | Alta | - |
+| DI_UPSsupply | E1.2 | UPS supply OK | E5.5 (0925A1/6) | BATTERY POWER SUPPLY | Alta | - |
+| ==DI_PPN301_SoftStart_Ovrld== | E1.3 | PPN301 - Water_Pump_SoftStart_Ovrld | E10.0 (0160Q2) | P1 WATER PUMP OVERLOAD SWITCH | Alta | P1/301 |
+| ==DI_PPN301_Ovrld== | E2.0 | PPN301 - Deaireator Pump Overload | E10.0 (0160Q2) | P1 WATER PUMP OVERLOAD SWITCH | Alta | P1/301 |
+| DI_PPP302_Ovrld | E2.2 | PPP302 - Syrup Pump Overload | E10.1 (0163Q2) | SYRUP PUMP OVERLOAD | Alta | P2/302 |
+| DI_PPM303_Ovrld | E2.4 | PPM303 - Product Pump Overload | E10.2 (0166Q2) | OVERPRESSURE PUMP THERMIC SWITCH | Alta | P3/303 |
+| DI_PPM306_Ovrld | E2.6 | PPM306 - Recirculating Pump Overload | E10.3 (0169Q2) | RECIRCULATION PUMP OVERLOAD | Alta | P6/306 |
+| DI_PPN301_Contactor | E2.1 | PPN301 - Deaireator Pump Feedback | E11.0 (0160K4) | P1 WATER PUMP FAULT / Feedback | Alta | P1/301 |
+| DI_PPP302_Contactor | E2.3 | PPP302 - Syrup Pump Feedback | E11.1 (0163K8) | SYRUP PUMP FAULT / Feedback | Alta | P2/302 |
+| DI_PPM306_Contactor | E2.7 | PPM306 - Recirculating Pump Feedback | E11.3 (0169K8) | PRODUCT RECYCLE PUMP | Alta | P6/306 |
+| | | | E12.0 | ==SOFTSTART RUNNING== | | |
+| | | | E12.1 | ==OVERLOAD ANTON PAAR== | | |
+| DI_Air_InletPress_OK | E4.1 | Air Pressure Switch | E12.4 (0934S1) | AIR PRESSURE | Alta | - |
+| DI_LSN301L | E0.6 | LSN301_L - Deaireator Tank Minimun Level | E12.5 (0934B3) | DEARETOR 1 MINIMUM LEVELPROBE | Alta | - |
+| DI_LSM302L | E1.0 | LSM302_L - Product Tank Minimun Level | E12.6 (0934B6) | STORE TANK MIN LEVELPROBE | Alta | - |
+| DI_CIP_CIP_Enable | E303.2 | From CIP Enable | E60.0 | CIP MODE | Alta | |
+| DI_CIP_CIP_Rinse | E3.5 | From CIP Running | E60.1 | RINSE MODE | Media | |
+| DI_CIP_Drain | E3.6 | From CIP Drain | E60.2 | CIP DRAINAGE REQUEST | Alta | |
+| DI_CIP_End | E3.7 | From CIP End (Completed) | E60.3 | CIP COMPLETED | Alta | |
+| DI_SyrRoom_SyrPump_Running | E3.0 | From Syrup Room - Syrup Pump Running | E68.0 (SYR.0) | SYRUPS ROOM PUMP RUN | Alta | |
+| DI_SyrRoom_WatPumpReady | E3.2 | From Syrup Room - Water Pump Ready | E68.1 (SYR.1) | WATER PUMP SYRUP ROOM | Alta | |
+| DI_AVM346_Open | E304.6 | AVM346 - Feedback ON | E102.2 (0951S6) | AVM346 OPEN | Alta | |
+| DI_AVM362_Open | E304.4 | AVM362 - Feedback ON | E102.3 (0951S8) | AVM362 OPEN | Alta | |
+| DI_AVM346_Close | E304.7 | AVM346 - Feedback OFF | E112.2 (0967A1/3) | AVM346 CLOSED | Alta | |
+| DI_AVM362_Close | E304.5 | AVM362 - Feedback OFF | E112.3 (0967A1/4) | AVM362 CHIUSA | Alta | |
+| DI_RMM301_Closed | E1.5 | RMM301 - Feedback OFF (VM1WATER) | E112.4 (0967A1/5) | CLOSED VALVE RMM301 | Alta | - |
+| DI_RMP302_Closed | E1.6 | RMP302 - Feedback OFF (VM2 SYRUP) | E112.5 (0967A1/6) | CLOSED VALVE RMP302 | Alta | - |
+| DI_RMM303_Closed | E1.7 | RMM303 - Feedback OFF (VM3 CO2) | E112.6 (0967A1/7) | CLOSED VALVE RMM303 | Alta | - |
+
+## Salidas Digitales (DO → A)
+
+| Software Side | Software Address | Software Description | PLC Side | PLC Description | Coincidencia | Equival. |
+| ------------------------ | ---------------- | ----------------------------------------------- | -------------- | ------------------------------------------------------ | ------------ | -------- |
+| DO_PPM303_Run | A2.6 | DO_PPM303_Run | - | - | - | P3/303 |
+| DO_HMIPowerSupply | A2.7 | Cut Power to PC | A5.0 | HMI POWER SUPPLY RESTORE | Alta | - |
+| | | | ==A5.1== | ==CONTROL CIRCUIT RUN== | | |
+| DO_Yellow_Lamp | A2.3 | DO_Yellow_Lamp | A5.5 (1046H0) | YELLOW | Alta | - |
+| DO_Horn | A2.0 | DO_Horn | A5.7 (1046H0) | ACOUSTIC ALARM | Alta | - |
+| DO_PPN301_Run | A2.4 | DO_PPN301_SoftStartPower | A11.0 (1052K1) | WATER PUMP CONTROL | Alta | P1/301 |
+| DO_PPP302_Run | A2.5 | DO_PPP302_Run | A11.1 | SYRUP PUMP CONTROL | Alta | P2/302 |
+| DO_PPM306_Run | A0.7 | DO_PPM306_Run | A11.3 | RECIRCULATION PUMP CONTROL | Alta | P6/306 |
+| DO_SyrupValve_Enable | A0.0 | Valve Power Enable (Power Supply Analog Signal) | A11.6 (1053K6) | SYRUP VALVE ENABLE | Alta | |
+| DO_Flr1_CIP_DrainRequest | A1.4 | FILLER - Cip Drain Request | A60.0 (1055U0) | CIP REQUEST | Media | |
+| DO_Flr1_CIP_CleaningEnd | A1.5 | FILLER - Cip Cleaning Ended | A60.1 (1055U2) | CIP DRAINAGE FINISHED | Media | |
+| DO_SyRm_SyrupReques | A1.0 | To syrup Room Syrup Request | A68.0 (1062U0) | SIRUP REQUEST | Alta | |
+| DO_SyRm_WaterRequest | A7.6 | To syrup Room Water Request | A68.1 (1062U2) | ==WATER REQUEST== | Alta | |
+| DO_AVM311 | A16.0 | MIX - Product Tank Blow Off | A100.0 | SFIATO SATURATORE / CARBONATOR BLOW-OFF | Alta | |
+| DO_AVM313 | A16.1 | MIX - Product Recirculation | A100.1 | RICIRCOLO PRODOTTO / PRODUCT RECYCLE | Alta | |
+| DO_AVN314 | A16.2 | MIX - Deaireator Drain | A100.2 | SCARICO DEAREATORE / DEAREATOR BLOW-OFF | Alta | |
+| DO_AVM315 | A16.3 | MIX - Product Tank Drain | A100.3 | SCARICO SATURATORE / CARBONATOR DISCHARGE | Alta | |
+| DO_AVP316 | A16.4 | MIX - Syrup Tank Drain | A100.4 | SCARICO SCIROPPO / SYRUP BLOW-OFF | Alta | |
+| DO_AVM317 | A16.5 | MIX - Product Tank Spray Ball | A100.5 | DIVOSFERA SATURATORE / CARBONATOR SPRAY BALL | Alta | |
+| DO_AVN318 | A16.6 | MIX - Deaireator Over Fill | A100.6 | PIENO TROPPO DEAREATORE / DEAREATOR OVERLOAD | Alta | |
+| DO_AVM321 | A16.7 | MIX - Product Tank Over Fill | A100.7 | TROPPO PIENO SATURATORE / CARBONATOR OERLOAD | Alta | |
+| DO_AVM322 | A17.0 | MIX - Water Pump PPN301 Priming | A101.0 | SFIATO ARIA POMPA PRODOTTO / PRODUCT PUMP AIR BLOW-OFF | Media | |
+| DO_AVM326 | A17.3 | MIX - CO2 Injection Shut Off | A101.3 | INTERCETTAZIONE INIETT.CO2 / CO2 INJECTOR INTERCEPTION | Alta | |
+| DO_AVN327 | A17.4 | MIX - Deaireator Tank Spray Ball | A101.4 | DEAREATORE DIVOSFERA / DEAREATOR SPRAY BALL | Alta | |
+| DO_AVP344 | A17.6 | MIX - Syrup Line Drain | A101.6 | SCARICO TUBO SCIROPPO / SYRUP PIPE BLOW-OFF | Alta | |
+| DO_AVM345 | A17.7 | MIX - Product Chiller Drain | A101.7 | SCARICO SCAMBIATORE / EXCHANGER R DISCHARGE | Media | |
+| DO_AVM362 | A18.1 | MIX - Product Outlet | A102.1 | USCITA PRODOTTO / PRODUCT OUTLET | Alta | |
+| DO_AVM381 | A18.3 | MIX - Product Recirculation With Chiller | A102.3 | RICIRCOLO PRODOTTO / PRODUCT RECYCLE | Alta | |
+| DO_AVP361 | A18.0 | MIX - Syrup Tank Spray Ball | A102.6 | DIVOSFERA SCIROPPO / SYRUP SPRAY BALL | Alta | |
+| DO_RVN302 | A19.0 | MIX - Deaireator Floater | A103.4 | GALLEGGIANTE DEAREATORE / DEAREATOR FLOATER | Alta | |
+| DO_RVN302_1 | A19.1 | MIX - Deaireator 2 Fill Up | A103.5 | INVASAMENTO DEAREATORE / DEAREATOR MAX. FILL | Media | |
+
+## Analog Inputs (AI → IW)
+
+| Software Side | Software Address | Software Description | PLC Side | PLC Description | Coincidencia |
+| ------------- | ---------------- | ------------------------------------ | --------------------- | ------------------------------------------- | ------------ |
+| P_AI_TTN321 | EW112 | TTN321 - Deaireator Temperature | IW800 (990U2 - 990B2) | H2O DEAREATOR TEMP | Alta |
+| P_AI_LTM302 | EW100 | LTM302 - Product Tank Level | IW804 (991B2) | STORAGE TANK LEVEL | Alta |
+| P_AI_PTM304 | EW102 | PTM304 - Product Tank Pressure | IW806 (991B6) | STORAGE TANK PRESSURE SENSOR | Alta |
+| P_AI_LTP303 | EW110 | LTP303 - Syrup Tank Level | IW808 (992B2) | SYROP TANK LEVEL | Alta |
+| P_AI_PTF203 | EW118 | PTF203 - Differential Pressure | IW810 (992B6) | DIFFERENTIAL PRESSURE GAUGE | Alta |
+| P_AI_TTM306 | EW108 | TTM306 - Chiller Temperature | IW812 (993U2 - 993B2) | PRODUCT TEMPERATURE SENSOR | Media |
+| P_AI_PTP338 | P_AI_PTP338 | PTP338 - Syrup Inlet Pressure | IW816 (994B3) | INLET SYRUP PRESSURE SENSOR | Baja |
+| P_AI_RVN304 | EW104 | RVN304 - Deaireation Valve | IW820 | AIR VACUUM CO2 FLOW CONTROL | Baja |
+| P_AI_PCM306 | EW114 | PCM306 - Gas Pressure Injection | IW824 | NORGREN (PV) VALVE ANALOG OUTPUT CO2 PCM306 | Baja |
+| P_AI_RVM301 | EW106 | RVM301 - Product Tank Pressure Valve | IW826 | ==CO2 TANK PRESSURE CONTROL== | |
+
+NORGREN Gasatura Produtto CO2
+
+## Analog Outputs (AO → AW)
+
+| Software Side | Software Address | Software Description | PLC Side | PLC Description | Coincidencia |
+| ------------- | ---------------- | --------------------------------------- | -------- | ---------------------------------- | ------------ |
+| P_AO_RMM301 | AW100 | RMM301 - Water Flow Control | AW800 | WATER MOTOR VALVE | Alta |
+| P_AO_RMM303 | AW104 | RMM303 - Gas Flow Control | AW802 | CO2 MOTOR VALVE | Alta |
+| P_AO_RMP302 | AW102 | RMP302 - Syrup Flow Control | AW804 | SYRUP MOTOR VALVE | Alta |
+| P_AO_RVP303 | AW112 | RVP303 - Syrup Tank Level Valve | AW806 | SYRUP INFEED VALVE | Media |
+| P_AO_RVM319 | AW110 | RVM319 - Chiller Temperature control | AW812 | PRODUCT TEMPERATURE | Alta |
+| P_AO_RVN304 | AW108 | RVN304 - Deaireation Valve | AW820 | AIR VACUUM CO2 FLOW CONTROL | Media |
+| P_AO_RVM301 | AW106 | RVM301 - Product Tank Pressure Valve | AW826 | CO2 TANK PRESSURE CONTROL | Media |
+| P_AO_PCM306 | AW114 | PCM306 - Gas Injection Pressure Control | AW824 | NOGREN VALVE ANALOGICAL INPUT (SP) | Alta |
+
+## Legend of equivalences
+
+- ___K_ : COMMAND RELAY - FEEDBACK SIGNAL (Señales de retroalimentación)
+- ___Q_ : TERMIC OVERLOAD SIGNAL (Señales de sobrecarga térmica)
+- P1 = WATER PUMP = SOFTSTART = 301 (160Q2:E10.0 = 160K4:E11.0)
+- P2 = SYRUP PUMP = 302 (163Q2:E10.1 = 163K8:E11.1)
+- P3 = OVERPRESSURE PRODUCT PUMP = 303 (166Q2:E10.2)
+- P6 = RECYCLE PUMP = 306 (169Q2:E10.3 = 169K8:E11.3)
+
+* Anton Paar = Analizatore
+
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/IO/IO - PLC - Software.md b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/IO/IO - PLC - Software.md
new file mode 100644
index 0000000..aec2745
--- /dev/null
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/IO/IO - PLC - Software.md
@@ -0,0 +1,93 @@
+
+### PLC
+***
+
+| IO | Tag | Descripcion | Descripcion |
+| ------ | ------------- | ---------------------------------- | ---------------------------- |
+| E5.0 | | MAX TEMPERATURE ALARM | |
+| E5.1 | 0760K1 | AUXILIARY CIRC. ON | |
+| E5.2 | 0760S4 | EMERGENCY EMERGENZA | |
+| E5.3 | 0925A1/4 | BUFFER BATTERY READY | |
+| E5.4 | 0925A1/5 | UPS ALARM | |
+| E5.5 | 0925A1/6 | BATTERY POWER SUPPLY | |
+| E10.0 | 0160Q2 | P1 WATER PUMP OVERLOAD SWITCH | |
+| E10.1 | 0163Q2 | SYRUP PUMP OVERLOAD | |
+| E10.2 | 0166Q2 | OVERPRESSURE PUMP THERMIC SWITCH | |
+| E10.3 | 0169Q2 | RECIRCULATION PUMP OVERLOAD | |
+| E11.0 | 0160K4 | P1 WATER PUMP FAULT / Feedback | |
+| E11.1 | 0163K8 | SYRUP PUMP FAULT / Feedback | |
+| E11.3 | 0169K8 | PRODUCT RECYCLE PUMP | |
+| E12.0 | | SOFTSTART RUNNING | |
+| E12.1 | 0820F8 | OVERLOAD ANTON PAAR | |
+| E12.4 | 0934S1 | AIR PRESSURE | |
+| E12.5 | 0934B3 | DEARETOR 1 MINIMUM LEVELPROBE | |
+| E12.6 | 0934B6 | STORE TANK MIN LEVELPROBE | |
+| E60.0 | | CIP MODE | |
+| E60.1 | | RINSE MODE | |
+| E60.2 | | CIP DRAINAGE REQUEST | |
+| E60.3 | | CIP COMPLETED | |
+| E68.0 | SYR.0 | SYRUPS ROOM PUMP RUN | |
+| E68.1 | SYR.1 | WATER PUMP SYRUP ROOM | |
+| E102.3 | 0951S8 | AVM362 OPEN | |
+| E102.2 | 0951S6 | AVM346 OPEN | |
+| E112.2 | 0967A1/3 | AVM346 CLOSED | |
+| E112.3 | 0967A1/4 | AVM362 CHIUSA | |
+| E112.4 | 0967A1/5 | CLOSED VALVE RMM301 | |
+| E112.5 | 0967A1/6 | CLOSED VALVE RMP302 | |
+| E112.6 | 0967A1/7 | CLOSED VALVE RMM303 | |
+| | | | |
+| IW800 | 990U2 - 990B2 | H2O DEAREATOR TEMP | |
+| IW804 | 991B2 | STORAGE TANK LEVEL | |
+| IW806 | 991B6 | STORAGE TANK PRESSURE SENSOR | |
+| IW808 | 992B2 | SYROP TANK LEVEL | |
+| IW810 | 992B6 | DIFFERENTIAL PRESSURE GAUGE | |
+| IW812 | 993U2 - 993B2 | PRODUCT TEMPERATURE SENSOR | |
+| IW816 | 994B3 | INLET SYRUP PRESSURE SENSOR | |
+| IW820 | | AIR VACUUM CO2 FLOW CONTROL | |
+| IW824 | | NORGREN (PV) VALVE ANALOG OUTPUT | |
+| IW826 | 805B1 | CO2 TANK PRESSURE CONTROL | |
+| | | | |
+| AW800 | | WATER MOTOR VALVE | |
+| AW802 | | CO2 MOTOR VALVE | |
+| AW804 | | SYRUP MOTOR VALVE | |
+| AW806 | | SYRUP INFEED VALVE | |
+| AW812 | | PRODUCT TEMPERATURE | |
+| AW820 | | AIR VACUUM CO2 FLOW CONTROL | |
+| AW824 | | NOGREN VALVE ANALOGICAL INPUT (SP) | |
+| AW826 | | CO2 TANK PRESSURE CONTROL | |
+| A5.0 | | HMI POWER SUPPLY RESTORE | |
+| A5.1 | | CONTROL CIRCUIT RUN | |
+| A5.5 | 1046H0 | YELLOW | |
+| A5.7 | 1046H0 | ACOUSTIC ALARM | |
+| A11.0 | 1052K1 | WATER PUMP CONTROL | |
+| A11.1 | | SYRUP PUMP CONTROL | |
+| A11.3 | | RECIRCULATION PUMP CONTROL | |
+| A11.6 | 1053K6 | SYRUP VALVE ENABLE | |
+| A60.0 | 1055U0 | CIP REQUEST | |
+| A60.1 | 1055U2 | CIP DRAINAGE FINISHED | |
+| A68.0 | 1062U0 | SIRUP REQUEST | |
+| A68.1 | 1062U2 | WATER REQUEST | |
+| | | | |
+| A100.0 | | SFIATO SATURATORE | CARBONATOR BLOW-OFF |
+| A100.1 | | RICIRCOLO PRODOTTO | PRODUCT RECYCLE |
+| A100.2 | | SCARICO DEAREATORE | DEAREATOR BLOW-OFF |
+| A100.3 | | SCARICO SATURATORE | CARBONATOR DISCHARGE |
+| A100.4 | | SCARICO SCIROPPO | SYRUP BLOW-OFF |
+| A100.5 | | DIVOSFERA SATURATORE | CARBONATOR SPRAY BALL |
+| A100.6 | | PIENO TROPPO DEAREATORE | DEAREATOR OVERLOAD |
+| A100.7 | | TROPPO PIENO SATURATORE | CARBONATOR OERLOAD |
+| A101.0 | | SFIATO ARIA POMPA PRODOTTO | PRODUCT PUMP AIR BLOW-OFF |
+| A101.1 | | SCARICO SERPENTINA | TUBULAR EL. BLOW-OFF |
+| A101.2 | | RICICLO SCIROPPO START-UP | SYRUP RECIRCULATING START-UP |
+| A101.3 | | INTERCETTAZIONE INIETT.CO2 | CO2 INJECTOR INTERCEPTION |
+| A101.4 | | DEAREATORE DIVOSFERA | DEAREATOR SPRAY BALL |
+| A101.5 | | DEAREAZ. ACOUA IN RISCIACOUO | DEAREATOR RINSING WATER |
+| A101.6 | | SCARICO TUBO SCIROPPO | SYRUP PIPE BLOW-OFF |
+| A101.7 | | SCARICO SCAMBIATORE | EXCHANGER R DISCHARGE |
+| A102.1 | | USCITA PRODOTTO | PRODUCT OUTLET |
+| A102.3 | | RICIRCOLO PRODOTTO | PRODUCT RECYCLE |
+| A102.4 | | SANIFICAZIONE | SANITIZING |
+| A102.5 | | DRENAGGIO TUB. SANIFIC. | SANITIZING PIPE DRAINAGE |
+| A102.6 | | DIVOSFERA SCIROPPO | SYRUP SPRAY BALL |
+| A103.4 | | GALLEGGIANTE DEAREATORE | DEAREATOR FLOATER |
+| A103.5 | | INVASAMENTO DEAREATORE | DEAREATOR MAX. FILL |
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/Pasted image 20250401163835.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/Pasted image 20250401163835.png
new file mode 100644
index 0000000..5f2e2f6
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/Pasted image 20250401163835.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/Pasted image 20250401163951.png b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/Pasted image 20250401163951.png
new file mode 100644
index 0000000..051042e
Binary files /dev/null and b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/Pasted image 20250401163951.png differ
diff --git a/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/motorS.svg b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/motorS.svg
new file mode 100644
index 0000000..5121e6a
--- /dev/null
+++ b/04-SIDEL/05 - E5.007161 - Modifica O&U - SAE346/adjuntos/motorS.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - Notes.md b/05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - Notes.md
index b9978cd..2da299e 100644
--- a/05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - Notes.md
+++ b/05-COMS/01 - T300881 - Nestle SudAfrica/T300881 - Notes.md
@@ -6,41 +6,43 @@
### IP Base: 10.146.76.
-| Device | | Name | IP | | MAC |
-| :--------------: | :----------: | :----------------: | :----------: | ---- | ----------------- |
-| PLC 1756-A4 5580 | plc_conveyor | 1-EN2T Conveyor | 10.146.76. | .1 | 08:61:95:E4:B8:87 |
-| PLC | | 2-EN2T LineMachine | 172.16.100.1 | | |
-| IM | | 5069_51A1 | 10.146.76. | .2 | BC:F4:99:10:9D:CB |
-| IM | | 795A1 | 10.146.76. | .83 | BC:F4:99:10:3C:5F |
-| IM | | 910A1 | 10.146.76. | .87 | BC:F4:99:0F:2D:7D |
-| HMI | | | | | |
-| | | | | | |
-| M33 | | | 10.146.76. | .43 | 00:0F:69:6C:AE:50 |
-| M35 | | | 10.146.76. | .45 | 00:0F:69:6B:9E:D9 |
-| M36 | | | 10.146.76. | .46 | 00:0F:69:6B:7B:A8 |
-| M37 | Table_1 | | 10.146.76. | .47 | 00:0F:69:6C:8D:E0 |
-| M38 | Table_1 | | 10.146.76. | .48 | 00:0F:69:6B:7B:A2 |
-| M39 | Table_1 | | 10.146.76. | .49 | 00:0F:69:6C:8D:DA |
-| M40 | Table_2 | | 10.146.76. | .50 | 00:0F:69:6B:7B:FF |
-| M41 | Table_1 | | 10.146.76. | .51 | 00:0F:69:6B:7B:75 |
-| M42 | Table_2 | | 10.146.76. | .52 | 00:0F:69:6B:7B:96 |
-| M43 | Table_2 | | 10.146.76. | .53 | 00:0F:69:6C:8D:D4 |
-| M44 | | | 10.146.76. | .54 | 00:0F:69:6B:7B:78 |
-| M45 | | | 10.146.76. | .55 | 00:0F:69:6B:9E:E5 |
-| M46 | | | 10.146.76. | .56 | 00:0F:69:6B:7B:6F |
-| M47:M10 | | | 10.146.76. | .57 | 00:0F:69:6B:7B:39 |
-| | | | | | 00:0F:69:6B:7B:39 |
-| | | | | | 00:06:77:63:64:C2 |
-| | | | | | 02:1B:1B:35:6E:01 |
-| | | | | | |
-| PILZ CPU | | | 10.146.76. | .100 | |
-| PILZ | | | 10.146.76. | .101 | |
-| PILZ | | | 10.146.76. | .102 | |
-| PILZ | | | 10.146.76. | .103 | |
-| PILZ | | | 10.146.76. | .104 | |
-| PILZ | | | 10.146.76. | .105 | |
-| | | | | | |
-| DIVIDER | | 255.240.0.07 | 10.146.76. | 201 | |
+| Device | | Name | IP | | MAC | user | password |
+| :--------------: | :----------: | :----------------: | :----------: | ---- | ----------------- | ----- | -------- |
+| PLC 1756-A4 5580 | plc_conveyor | 1-EN2T Conveyor | 10.146.76. | .1 | 08:61:95:E4:B8:87 | | |
+| PLC | | 2-EN2T LineMachine | 172.16.100.1 | | | | |
+| IM | | 5069_51A1 | 10.146.76. | .2 | BC:F4:99:10:9D:CB | | |
+| IM | | 795A1 | 10.146.76. | .83 | BC:F4:99:10:3C:5F | | |
+| IM | | 910A1 | 10.146.76. | .87 | BC:F4:99:0F:2D:7D | | |
+| HMI | | 618A1 | 10.146.76. | 11 | | admin | Tss25001 |
+| HMI | | 988A1 | 10.146.76. | 12 | | admin | Tss25001 |
+| HMI | | 608A1 | 10.146.76. | 13 | | admin | Tss25001 |
+| | | | | | | | |
+| M33 | | | 10.146.76. | .43 | 00:0F:69:6C:AE:50 | | |
+| M35 | | | 10.146.76. | .45 | 00:0F:69:6B:9E:D9 | | |
+| M36 | | | 10.146.76. | .46 | 00:0F:69:6B:7B:A8 | | |
+| M37 | Table_1 | | 10.146.76. | .47 | 00:0F:69:6C:8D:E0 | | |
+| M38 | Table_1 | | 10.146.76. | .48 | 00:0F:69:6B:7B:A2 | | |
+| M39 | Table_1 | | 10.146.76. | .49 | 00:0F:69:6C:8D:DA | | |
+| M40 | Table_2 | | 10.146.76. | .50 | 00:0F:69:6B:7B:FF | | |
+| M41 | Table_1 | | 10.146.76. | .51 | 00:0F:69:6B:7B:75 | | |
+| M42 | Table_2 | | 10.146.76. | .52 | 00:0F:69:6B:7B:96 | | |
+| M43 | Table_2 | | 10.146.76. | .53 | 00:0F:69:6C:8D:D4 | | |
+| M44 | | | 10.146.76. | .54 | 00:0F:69:6B:7B:78 | | |
+| M45 | | | 10.146.76. | .55 | 00:0F:69:6B:9E:E5 | | |
+| M46 | | | 10.146.76. | .56 | 00:0F:69:6B:7B:6F | | |
+| M47:M10 | | | 10.146.76. | .57 | 00:0F:69:6B:7B:39 | | |
+| | | | | | 00:0F:69:6B:7B:39 | | |
+| | | | | | 00:06:77:63:64:C2 | | |
+| | | | | | 02:1B:1B:35:6E:01 | | |
+| | | | | | | | |
+| PILZ CPU | | | 10.146.76. | .100 | | | |
+| PILZ | | | 10.146.76. | .101 | | | |
+| PILZ | | | 10.146.76. | .102 | | | |
+| PILZ | | | 10.146.76. | .103 | | | |
+| PILZ | | | 10.146.76. | .104 | | | |
+| PILZ | | | 10.146.76. | .105 | | | |
+| | | | | | | | |
+| DIVIDER | | 255.240.0.07 | 10.146.76. | 201 | | | |
![[Pasted image 20250312103939.png]]
diff --git a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md b/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md
index 0cb5247..77484f6 100644
--- a/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md
+++ b/07 - Desarrolo de Proyectos - Scripts - Visual Studio/Proyectos Visual Studio/Como usar PublicApiGenerator - Nuget - Documentator.md
@@ -9,3 +9,32 @@ generate-public-api --assembly "D:\Proyectos\VisualStudio\S7Explorer\bin\Debug\n
```
generate-public-api --assembly "C:\Users\migue\.nuget\packages\paddleocrsharp\4.5.0.1\lib\net8.0\PaddleOCRSharp.dll" --target-frameworks "net8.0-windows" > PaddleOCRSharpAPI.txt
```
+
+
+```
+generate-public-api --package Extended.Wpf.Toolkit --package-version 4.7.25104.5739 --target-frameworks "net5.0-windows" > Xceed.Wpf.Toolkit.txt --verbose
+```
+
+```
+PublicApiGenerator.Tool:
+ Public API generator tool that is useful for semantic versioning
+
+Usage:
+ PublicApiGenerator.Tool [options]
+
+Options:
+ --target-frameworks Target frameworks to use to restore packages in. Must be a suitable target framework for executables like netcoreapp2.1. It is possible to specify multiple target frameworks like netcoreapp2.1;net461
+ --assembly The assembly name including the extension (i.ex. PublicApiGenerator.dll) to generate a public API from in case in differs from the package name.
+ --project-path The path to the csproj that should be used to build the public API.
+ --package The package name from which a public API should be created. The tool assumes the package name equals the assembly name. If the assembly name is different specify
+ --package-version The version of the package defined in to be used.
+ --package-source Package source or feed to use (multiple allowed).
+ --generator-version The version of the PublicApiGenerator package to use.
+ --working-directory The working directory to be used for temporary work artifacts. A temporary directory will be created inside the working directory and deleted once the process is done. If no working directory is specified the users temp directory is used.
+ --output-directory The output directory where the generated public APIs should be moved.
+ --verbose
+ --leave-artifacts Instructs to leave the temporary artifacts around for debugging and troubleshooting purposes.
+ --wait-time-in-seconds The number of seconds to wait for the API generation process to end. If multiple target frameworks are used the wait time is applied per target framework.
+ --version Display version information
+```
+
diff --git a/Excalidraw/Drawing 2025-01-27 16.50.21.excalidraw.md b/Excalidraw/Drawing 2025-01-27 16.50.21.excalidraw.md
deleted file mode 100644
index 1509331..0000000
--- a/Excalidraw/Drawing 2025-01-27 16.50.21.excalidraw.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-
-excalidraw-plugin: parsed
-tags: [excalidraw]
-
----
-==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
-
-
-## Drawing
-```compressed-json
-N4IgLgngDgpiBcIYA8DGBDANgSwCYCd0B3EAGhADcZ8BnbAewDsEAmcm+gV31TkQAswYKDXgB6MQHNsYfpwBGAOlT0AtmIBeNCtlQbs6RmPry6uA4wC0KDDgLFLUTJ2lH8MTDHQ0YNMWHRJMRZFAHZFAFYyJE9VGEYwGgQAbQBdcnQoKABlALA+UEl8PGzsDT5GTkxMch0YIgAhdFQAayKuRlwAYXpMenwEEABiADMx8ZAAX0mgA
-```
-%%
\ No newline at end of file
diff --git a/TODY - Punti da vedere.md b/TODY - Punti da vedere.md
index 27834c8..7be6366 100644
--- a/TODY - Punti da vedere.md
+++ b/TODY - Punti da vedere.md
@@ -2,9 +2,9 @@
- [x] HENKEL - NEXT + 1 ✅ 2025-02-20\
- [x] 94102 - ALPLA - USA ✅ 2025-02-20
- [x] Orientatore Henkel ✅ 2025-02-20
-- [ ] Shibuya
-- [ ] Tavolo
-- [ ] Tilter
+- [x] Shibuya ✅ 2025-04-05
+- [x] Tavolo ✅ 2025-04-05
+- [x] Tilter ✅ 2025-04-05
- [ ] Tilter AB
diff --git a/Temporales/Drawing 2024-10-13 20.08.30.excalidraw.md b/Temporales/Drawing 2024-10-13 20.08.30.excalidraw.md
deleted file mode 100644
index 7c95d10..0000000
--- a/Temporales/Drawing 2024-10-13 20.08.30.excalidraw.md
+++ /dev/null
@@ -1,33 +0,0 @@
----
-
-excalidraw-plugin: parsed
-tags: [excalidraw]
-
----
-==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
-
-
-# Excalidraw Data
-## Text Elements
-%%
-## Drawing
-```compressed-json
-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
-```
-%%
\ No newline at end of file
diff --git a/Temporales/NAT - Switch.md b/Temporales/NAT - Switch.md
deleted file mode 100644
index c7def16..0000000
--- a/Temporales/NAT - Switch.md
+++ /dev/null
@@ -1,153 +0,0 @@
----
-
-excalidraw-plugin: parsed
-tags: [excalidraw]
-
----
-==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving'
-
-
-# Excalidraw Data
-## Text Elements
-NAT ^BKSCLkRA
-
-PLC ^mTZwNPFo
-
-10.1.30.11 ^l7F8t4Wt
-
-192.168.5.11 ^fU0EKNzn
-
-10.1.30.11 ^ZBGfAZXN
-
-Supervisore ^tOmTvful
-
-192.168.5.1 ^Tz0HUo7F
-
-Machines ^JTWbLq5D
-
-10.1.30.121 ^bGobUIBw
-
-sacomea ^B6bE3HFS
-
-Switch ^NQO23WCH
-
-192.168.5.12 ^V7pLUarO
-
-192.168.5.13 ^UgPSjnZx
-
-Internet ^aFZq5asP
-
-Machines ^BLg1zbqJ
-
-%%
-## Drawing
-```compressed-json
-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
-
-8EWCAA==
-```
-%%
\ No newline at end of file
diff --git a/Temporales/adjuntos/image.png b/Temporales/adjuntos/image.png
deleted file mode 100644
index 2508ce5..0000000
Binary files a/Temporales/adjuntos/image.png and /dev/null differ
diff --git a/Temporales/adjuntos/image_0.png b/Temporales/adjuntos/image_0.png
deleted file mode 100644
index ac31c08..0000000
Binary files a/Temporales/adjuntos/image_0.png and /dev/null differ
diff --git a/Temporales/adjuntos/image_1.png b/Temporales/adjuntos/image_1.png
deleted file mode 100644
index 6fe9654..0000000
Binary files a/Temporales/adjuntos/image_1.png and /dev/null differ